在一个声明中合并foreach和if(regex)

时间:2014-12-11 09:01:41

标签: regex perl

有没有机会

 foreach my $elements(keys %my_hash){
     if($element =~ /some_expression/{
         do something;
     }
 }

在一个声明中,如

foreach my $elements (keys %my_hash) =~ /some expression/{
    do something;
} 

2 个答案:

答案 0 :(得分:7)

foreach my $elements (grep /some_expression/, keys %my_hash) {
    do something;
}

答案 1 :(得分:5)

您可以使用grep内置:

for my $element (grep /some_expression/, keys %my_hash) {
  do_something();
}