如何在perl中创建6个(六个)临时文件,并获取它们对`system())的调用的名称?

我想优化此伪代码:

my $TEMP0 = new File::Temp( UNLINK => 0 );
system("PROGRAM0 --output $TEMP0");
my $TEMP1 = new File::Temp( UNLINK => 0 );
system("PROGRAM1 --input $TEMP0 --output $TEMP1");
my $TEMP2 = new File::Temp( UNLINK => 0 );
system("PROGRAM2 --input $TEMP0 --output $TEMP2");
my $TEMP3 = new File::Temp( UNLINK => 0 );
system("PROGRAM3 --input $TEMP1 $TEMP2 --output $TEMP3");
my $TEMP4 = new File::Temp( UNLINK => 0 );
system("PROGRAM4 --input $TEMP3 --output $TEMP4");
my $TEMP5 = new File::Temp( UNLINK => 0 );
system("PROGRAM4 --input $TEMP4 --output $TEMP5");

最后取消所有临时文件的链接:
unlink($TEMP0);
unlink($TEMP1);
unlink($TEMP2);
unlink($TEMP3);
unlink($TEMP4);
unlink($TEMP5);

最佳答案

您可以将map与某个范围配合使用来生成临时文件。例如。

my @tempfiles = map { new File::Temp( UNLINK => 0 ) } 1..6;

由于在程序的调用方式上没有固定的模式,因此将它们作为对系统的单独调用来保存似乎是合理的。

关于perl - 在perl中创建多个临时文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8742222/

10-12 14:41