我试图让这个脚本将输出文件放在results /中但我只在结果/ spool中得到它们。我怎样才能让它们最终到达正确的位置?
#!/usr/bin/perl -w
use POSIX;
my $date = strftime "%Y%m%d_%H%M.txt", localtime;
my @files = <spool/*.*>;
foreach $file (@files) {
my $date_file = $file;
system("$^X wfreq.pl $file >> results/${date_file}_$date");
unlink("$file");
}
答案 0 :(得分:2)
你测试过这个吗?
#!/usr/bin/perl -w
use POSIX;
my $date = strftime "%Y%m%d_%H%M.txt", localtime;
my @files = <spool/*.*>;
foreach $file (@files) {
(my $date_file = $file) =~ s!.*/!!;
system("$^X wfreq.pl $file >> results/${date_file}_$date");
unlink("$file");
}
函数system()
,qx()
&amp; exec()
可以毫无问题地处理变量。
答案 1 :(得分:0)
这是你想要的吗?
这将为每个日期提供单独的文件
@files = <spool/*.*>;
foreach $file (@files) {
system($^X, "wfreq.pl", $file);
$DATE = strftime "%Y%m%d";
open OUTPUT, '>results/$DATE.txt' or die;
print OUTPUT $DATE;
}
或者将结果全部存储在一个文本文件中的文件
@files = <spool/*.*>;
open OUTPUT, '>>results/results.txt' or die;
foreach $file (@files) {
system($^X, "wfreq.pl", $file);
$DATE = strftime "%Y%m%d";
print OUTPUT $DATE;
}