Perl:当找不到文件时,抑制反引号的输出

时间:2013-08-09 20:05:29

标签: regex perl backticks exitstatus

在我的代码中:

$status = `ls -l error*`;

显示输出:ls *error No such file or directory. 我怎么能压制这个消息。我有兴趣确定是否生成了错误文件。如果是,我需要忽略文件列表(不打印消息)

1 个答案:

答案 0 :(得分:8)

一样运行它
$status = `ls -l error* 2> /dev/null`;

并将外部命令的输出抑制为标准错误。

如果您只需要文件名(而不是ls -l切换给您的所有其他信息),可以使用类似

之类的语句在纯Perl中完成
@files = glob("error*");
if (@files == 0) { 
    ... there were no files ...
} else { 
    ... do something with files ...
}

如果您确实需要从ls -l ...获得的所有其他信息,则将内置stat函数应用于每个文件名可以为您提供相同的信息。