[PerlChina] 文件描述符如何同时读写( 以不使用<>的方式更新文件 )

杨溪 blackkensai at gmail.com
Mon Dec 8 03:21:56 PST 2008


替换文件内容可以用Tie::File.
很好用的,看下perldoc的例子就知道了。对数组的操作就可以直接替换文件。
可以用File::Find来search应该替换哪个文件,用Tie::File来修改文件内容。

2008/12/7 joe jiang <lamp.purl at gmail.com>

> 应该可以用 File::Find 的结果来填充 @ARGV,然后 print 就能配合 $^I 完成你
> 需要的修改了。
>
> On 日, 2008-12-07 at 19:06 +0800, owen nirvana wrote:
> > 我想批量替换某些文件的内容,按照learning perl 的方法可以从命令行读入,但是这种情况似乎并不适用于目录嵌套的情况,
> >
> > # from learning perl
> > $^I = ".bak"
> > while (<>) {
> > s/A/B/;
> > print;
> > }
> >
> > #my code
> >
> >
> > $^I = '';
> > if ( $filename =~ /AAA/i  ) {
> > open FILE, "<", $filename or die "bla bla bla...";
> > while (<FILE>) {
> >   s/A/B/;
> >  print;
> > }
> > }
> >
> >
> >
> > 这样还是仅仅打印到STDOUT了,该如何解决,谢谢
> >
> >
> 注:文件分布于个子目录之下,我是用File::Find遍历查找的,这样的话就只可以使用<FILE>了,为了更灵活一些,我也觉得把一切筛选工作让命令行来解决并不太合适
> > gtalk:freeespeech at gmail.com <gtalk%3Afreeespeech at gmail.com>
> > _______________________________________________
> > China-pm mailing list
> > China-pm at pm.org
> > http://mail.pm.org/mailman/listinfo/china-pm
>
> _______________________________________________
> China-pm mailing list
> China-pm at pm.org
> http://mail.pm.org/mailman/listinfo/china-pm
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/china-pm/attachments/20081208/d8ca18aa/attachment.html>


More information about the China-pm mailing list