为什么这个例子不起作用?
#!/usr/bin/perl
use POSIX qw(strftime);
use Time::Local;
my $date = strftime "%Y-%m-%d", localtime;
my $command = "ls clients/*/ERRORi/" . $date . "/*s";
@result = `$command`;
foreach $group (@result) {
my $file = '/opt/' . $group;
open( my $input_fh, '<', $file) || die "Can't open $file: $!";
print $input_fh;
}
它将返回:
Can't open /opt/clients/cli8832/ERRORi/2014-06-25/file.564159972s
: No such file or directory at ./my.pl line 12.
但如果我执行 ls/opt/clients/cli8832/ERRORi/2014-06-25/file.564159972s
它会起作用
最佳答案
您的 $file
变量包含尾随换行符,而您的实际文件名没有。
你应该咬
它。
关于Perl 打开名称为变量的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24430858/