它已經有一段時間,所以道歉,爲我的生鏽問題...Perl中的哈希聲明中是否可以使用子程序返回值(作爲數組)?
鑑於目前的(工作)代碼:
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);
替補不能返回數組,只是一個標量列表。如果你想要一個散列元素來包含對數組的引用,那麼你必須創建兩個元素,這就是'[]'所做的。 – ikegami
您可以使用qw()函數創建帶引號的列表,例如'qw(foo bar)'而不是'foo','bar''。 – TLP