这是一个简单的脚本,它在spool /中查找文件,然后用姐妹脚本处理它们。然后我希望它将结果输出到results /中。
这是问题所在,我写的代码rusults进入结果/假脱机/那是不对的。我怎样才能让他们进入结果/只有?
$ date_file我一直试图使输出文件包含它已处理的文件名。所以我猜测应该有一些东西要从中移除/假脱机,但是我无法对它进行排序。
#!/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 :(得分:1)
你的问题是你设置
my $date_file = $file
然后你写信给
results/${date_file}
如果您尝试打印$date_file
,您会发现它类似于spool/20121025_0000.txt
。因此,当您将其连接到results/
时,您可以看到他们为什么最终会进入results/spool
简单的解决就是说
my $date_file = substr($file, 6);
剪掉spool/
。
答案 1 :(得分:1)
您还可以考虑使用File :: Basename的basename()。
my $date_file = basename($file);