Perl:打开一个管道:没有这样的文件或目录

时间:2015-09-08 07:15:12

标签: perl pipe

我在打开管道以重定向dir命令的输出时遇到了麻烦。该错误发生在svn.pm中,它是Windows调试SDK的一部分,旨在支持subversion存储库的源索引。它出错的部分是:

my $hProcess;

if ( ! open($hProcess, "dir $SourceRoot 2>&1 |") ) {
    ::warn_message("Unable to resolve directory: $!");
    return();
}

[下载]

$SourceRoot是现有目录。我通过$!收到的错误是"没有这样的文件或目录"。上面脚本的全部目的(我没有编写它,我不是Perl开发人员)是将所有源文件放在目录中并处理它们。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

为什么不改为:

my @directory_entries = glob ( "$SourceRoot/*" ); 

或者:

opendir ( my $dir_handle, $SourceRoot ); 
while ( my $entry = readdir ( $dir_handle ) ) {
   print $entry; 
}