循环查找命令的输出

Eri*_*son 5 perl

我想在Perl中发出find命令并循环生成文件路径.我正在尝试它(但没有运气):

my $cmd;

open($cmd, '-|', 'find $input_dir -name "*.fastq.gz" -print') or die $!;

while ($line = <$cmd>) {
   print $line;
}

close $cmd;
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

谢谢

rei*_*ost 5

您没有对*角色应用足够的转义。前置 a\应该修复它。

最好首先不要通过分隔参数来调用 shell:

use warnings;
use strict;

open(my $cmd, '-|', 'find', $input_dir, '-name', '*.fastq.gz', '-print') or die $!;

while (my $line = <$cmd>) {
   print $line;
}

close $cmd;
Run Code Online (Sandbox Code Playgroud)