2

已经有一段时间了,所以为我生锈的问题道歉......

给定当前(工作)代码:

my @keywords = ( 'foo', 'bar', 'kan', 'moo', 'ban', 'noob' );    
my @good = grep { /oo/ } @keywords;
my @bad = grep { !/oo/ } @keywords;

my %data = (
  keywords => \@keywords,
  good => \@good,
  bad => \@bad
);

print Dumper(\%data);

声明只是临时变量,以确保哈希以数组引用结束。有没有办法整合上述内容以简单地使用散列声明中的方法?

我试图达到类似于以下内容(非工作代码):

my @keywords = ( 'foo', 'bar', 'kan', 'moo', 'ban', 'noob' );    

my %data = (
  keywords => \@keywords,
  good => grep { /oo/ } @keywords,
  bad => grep { !/oo/ } @keywords
);

print Dumper(\%data);
4

1 回答 1

8

是的,只需使用匿名数组 ref

my %data = (
  keywords => [@keywords],
  good => [grep { /oo/ } @keywords],
  bad => [grep { !/oo/ } @keywords],
);

print Dumper(\%data);
于 2012-08-30T04:14:19.920 回答