perl – 如何在实际写入文本行之前延迟创建文本文件? (懒惰创作
发布时间:2020-12-16 06:20:46 所属栏目:大数据 来源:网络整理
导读:我有一个perl脚本,在文件上附加文本: open (EXFILE,"$outFile"); 在打开时创建一个空文件,我想避免这种情况.我希望只有在第一次将一行写入文件句柄时才会创建该文件: print EXFILE $line 如果没有任何内容写入文件句柄,则不应创建该文件… 可能吗 ?怎么样
我有一个perl脚本,在文件上附加文本:
open (EXFILE,">>$outFile"); 在打开时创建一个空文件,我想避免这种情况.我希望只有在第一次将一行写入文件句柄时才会创建该文件: print EXFILE $line 如果没有任何内容写入文件句柄,则不应创建该文件… 可能吗 ?怎么样 ? 解决方法
创建一个为您开放的子项.
sub myappend { my ($fname,@args) = @_; open my $fh,'>>',$fname or die $!; print $fh @args; close $fh or die $!; } myappend($outfile,$line); 或者,不是打印,而是按下阵列并等到最后打印. while ( ... ) { push @print,$line; } if (@print) { open my $fh,$outfile or die $!; print $fh @print; } 或者,对于多个文件 while ( ... ) { push @{$print{$outfile}},$line; } for my $key (%print) { open my $fh,$key or die $!; print $fh @{$print{$key}}; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |