哈希表中的perl grep匹配变量

时间:2019-06-04 10:09:52

标签: perl

我在perl中有以下代码,试图在%samples_runs的键中找到字符串'$ dataset'并将其存储在数组中

} elsif ( my @matches = grep /$dataset/, keys %samples_runs ) { 
    my @values = @samples_runs{@matches};

    foreach my $match (@matches) {
    # do something
    }

但是,如果'keys%samples_runs'以“ prefix-1-1”开头,我不希望将其视为匹配项。

因此,如果存在匹配项,它将评估为真'grep / $ dataset /,键%samples_runs'。但是,如果存在匹配项且keys%samples_runs以'prefix-1-1'开头,则不应将任何内容添加到@matches数组中。

我该如何实现?

1 个答案:

答案 0 :(得分:2)

grep将使您实现所需的任何条件。是的,可以做到。

my @matches = grep ( /$dataset/ and not /^prefix-1-1/, keys %sample_runs );

应该做你想做的。