Perl 打开名称为变量的文件

标签 perl

为什么这个例子不起作用?

#!/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/

相关文章:

xml - 如何将 Perl 的 XML::XPath 与非英文元素名称一起使用?

regex - 将引号字符串中的换行符替换为\n

html - 为什么 XML::LibXML 即使在我禁用它们时仍会继续打印错误?

perl - 制作简单的 Perl 配置文件的最佳方法是什么?

perl - 在 foreach 循环中打印出与 Perl 中的值关联的键

regex - Perl 中字符串之间的字符匹配计数

perl - DBIx :Class many-to-many relationship with additional attribute

perl - 为什么我的代码里加了 'use bigint;',整型运算的结果还是 float ?

javascript - 将 html 页面中的 javascript 变量传递到 html 表单(在同一页面上)以提交给 perl cgi

perl - Perl 的 IO::File 等价于 open($fh, ">:utf8",$path) 是什么?