如何从Perl数组中提取出我想要的元素?

Fla*_*res 3 arrays perl

嘿,我想知道如何让这段代码工作.基本上我想保留行,$filename只要它们包含$user在路径中:

        open STDERR, ">/dev/null";
        $filename=`find -H /home | grep $file`;
        @filenames = split(/\n/, $filename);
        for $i (@filenames) {
            if ($i =~ m/$user/) {
                #keep results
            } else {
                delete  $i; # does not work.    
            }
        }
        $filename = join ("\n", @filenames);
        close STDERR;
Run Code Online (Sandbox Code Playgroud)

我知道你可以删除,delete $array[index]但我没有这种循环的索引,我知道.

Jon*_*Jon 10

您可以用以下代码替换循环:

@filenames = grep /$user/, @filenames;
Run Code Online (Sandbox Code Playgroud)