已经有一段时间了,为我生锈的问题道歉...
鉴于当前(工作)代码:
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);
答案 0 :(得分:8)
是的,只需使用匿名数组引用:
my %data = (
keywords => [@keywords],
good => [grep { /oo/ } @keywords],
bad => [grep { !/oo/ } @keywords],
);
print Dumper(\%data);