- 论坛徽章:
- 1
|
可惜,29楼的代码在循环中调用eval,会导致性能急剧下降,还得另想办法。
- #!/usr/bin/perl
- die "Usage: $0 perl-condition file\n" if $#ARGV != 1;
- $cmd = "print W unless ".$ARGV[0];
- $file = $ARGV[1];
- open FH, ">pdel.tmp" or die "Error write script file";
- print FH q[
- open R, "<].$file.q[" or die "Cannot open file ].$file.q[ to read";
- open W, "+<].$file.q[" or die "Cannot open file ].$file.q[ to write";
- while(<R>){
- ].$cmd.q[;
- }
- truncate( W, tell(W) );];
- if ( system "perl pdel.tmp" )
- { die "Error execute script"};
- unlink "pdel.tmp";
复制代码
上面的代码用了一个临时文件,笨办法。
性能应该没有问题了,用法不变。 |
|