perl – 如何在实际写入文本行之前延迟创建文本文件? (懒惰创作)

perl – 如何在实际写入文本行之前延迟创建文本文件? (懒惰创作),第1张

概述我有一个perl脚本,在文件上附加文本: open (EXFILE, ">>$outFile"); 在打开时创建一个空文件,我想避免这种情况.我希望只有在第一次将一行写入文件句柄时才会创建该文件: print EXFILE $line 如果没有任何内容写入文件句柄,则不应创建该文件… 可能吗 ?怎么样 ? 创建一个为您开放的子项. sub myappend { my ($fname, @a 我有一个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}};}
总结

以上是内存溢出为你收集整理的perl – 如何在实际写入文本行之前延迟创建文本文件? (懒惰创作)全部内容,希望文章能够帮你解决perl – 如何在实际写入文本行之前延迟创建文本文件? (懒惰创作)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1247827.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存