Tim*_*Tim 15 perl hash higher-order-functions
是否有哈希等价物map?
my %new_hash = hash_map { new_key($a) => new_val($b) } %hash;
Run Code Online (Sandbox Code Playgroud)
我知道我可以循环通过键.
Dal*_*aen 16
List :: Pairwise声称完全实现了这种语法 - 参见mapp,grepp.我没有用它.
此外,你可以这样做
%new_hash = map { new_key($_) => new_value($hash{$_}) } keys %hash;
Run Code Online (Sandbox Code Playgroud)
我承认,如果%hash真的是一个笨拙的话$deeply->{buried}->{hash}.我喜欢$temp = ...; map {...} keys %$temp在这种情况下使用.
我真的看不出你在这里想做什么.什么"哈希等价物map"甚至意味着什么?你可以使用map哈希就好了.如果你想要钥匙,只需使用keys; 例如"
@msglist = map { "value of $_ is $hash{$_}" } keys %hash
Run Code Online (Sandbox Code Playgroud)
虽然通常
说"$ _的值是$ hash {$ _}"键%hash;
很好.
如果你想要两者,那么使用整个哈希.
对于作业,有什么问题%new_hash = %old_hash?
你有深层次的问题吗?然后用Storable::dclone.
您是否希望在闭包中同时提供键和值?然后用第一张地图制作一堆对:
@pairlist = map { [ $_ => $hash{$_} ] } keys %hash
Run Code Online (Sandbox Code Playgroud)
我需要看一个你想要用它做什么的例子,但到目前为止,我看到使用一些大的旧模块而不是基本的Perl的零原因.
你可以使用这样的地图:
my $i = 0;
my %new_hash = map { $i ^= 1 ? new_key($_) : new_val($_) } %hash;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21950 次 |
| 最近记录: |