2009/11/7 Ruixian Zhu <zhurx4g@gmail.com>
好的 多谢。2009/11/7 Qiang (James) <shijialee@gmail.com>直接 local $/ = undef; 然后打开文件全部读入,直接替换然后重新写入即可。
这一部分可以用 hash 更省事些。
> $count=0;
> while($count<scalar(@keyword)){
> $_=$C;
> $C =~ s/@keyword[$count]/@replacekeyword[$count]/gi;
> $count++;
> }
my %k_to_replace = ( k_1 => 'new_k_1', ... );
for my $k (keys %k_to_replace) {
$C =~ s/$k/$k_to_replace{$k}/gi;
}
另外,代码里声明变量通常要用 my,还要使用 warnings 和 string; 建议你把这
篇文章先看看 http://wiki.perlchina.org/Use_Strict_And_Warnings
Qiang
Nestle wrote:
> 这样是不是文件多个关键字替换的最佳方法
>
> sub replaceInFile{
> print "Process File:".$_[0]."\n";
> undef $/;
> open TARGET_FILE,$_[0];
> $C = <TARGET_FILE>;
> close TARGET_FILE;
> $/="\n";
>
> $count=0;
> while($count<scalar(@keyword)){
> $_=$C;
> $C =~ s/@keyword[$count]/@replacekeyword[$count]/gi;
> $count++;
> }
>
> open( FILE, ">$_[0]");
> print FILE $C;
> close(FILE);
> }
> >
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---
没有评论:
发表评论