免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345
最近访问板块 发新帖
楼主: sunzhiguolu
打印 上一主题 下一主题

已经解决.结贴 脚本 Perl - 关于模块 Tie::File 的几点疑问 [复制链接]

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
41 [报告]
发表于 2015-12-07 21:55 |只看该作者
本帖最后由 MMMIX 于 2015-12-07 21:55 编辑

回复 40# sunzhiguolu


   
#!/usr/bin/perl

use strict;
use warnings;

use v5.14;
use autodie;
use Data::Dumper;

use Tie::File;

if (@ARGV < 1) {
  die "Usage: $0 file.txt";
}

tie my @arr, 'Tie::File', $ARGV[0], autodefer => 0;

(tied @arr)->defer();

for (@arr) {
  $_ = '> ' . $_;
}

say "=== Before Flush ===";
system 'cat', $ARGV[0];

(tied @arr)->flush();

say "=== After Flush ===";
system 'cat', $ARGV[0];


Demo:
$ echo -e 'abc\ndef\nijk' > /tmp/d82.txt
$ cat /tmp/d82.txt
abc
def
ijk
$ ./p82.pl /tmp/d82.txt
=== Before Flush ===
abc
def
ijk
=== After Flush ===
> abc
> def
> ijk

评分

参与人数 1信誉积分 +10 收起 理由
sunzhiguolu + 10 非常感谢您的帮助, 谢谢您...

查看全部评分

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
42 [报告]
发表于 2015-12-08 00:10 |只看该作者
回复 41# MMMIX
大神您好, 看了您的代码学习了好多...
有两点不明白, 还请您解惑...
1.> (tied @arr)_>flush() 之后是否还有必要调用 (tied @arr)->autodefer(), 调用与否有什么影响吗?
2.> 对于 Tie::File 模块的使用, 您能否举一两个使用该模块的典型场景?

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP