我正在从这样的 perl 脚本中调用 find:

my $one_file = `find $search_dir -name "\*.$refinfilebase.search"-print |头-n 1`;

如果我从 shell 执行它,则不会出错。此外,它将正确的值返回给 $one_file,但我在提示中得到了这个:

查找:写入错误:管道损坏

为什么会这样?我怎样才能摆脱这个 find: write error: Broken pipe 消息?

最佳答案

你可以试试这个(虽然我没有设法使用你发布的代码重现你的错误信息,所以也许我的这个无错误版本也可能会给你一个错误信息......):

my $file = `find $search_dir -name "\*.ssf" -print -exec head -n 1 {} \\;`;

这是我从测试运行中得到的一些示例输出:
./tmp1.ssf
HEADER    PROTEIN                                 21-FEB-11     1PDB

HTH

关于perl - 从 perl 调用带有反引号的 find - find : write error: Broken pipe,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6609034/

10-15 01:39