答えて
List::Pairwiseは、その構文を正確に実装すると主張しています。mapp
、grepp
を参照してください。私はそれを使用していない。
また、私は%hash
は本当に$deeply->{buried}->{hash}
ある場合clumsierに見える認める
%new_hash = map { new_key($_) => new_value($hash{$_}) } keys %hash;
としてそれを行うことができます。このような場合は$temp = ...; map {...} keys %$temp
を使用することをお勧めします。
あなたはこのようにマップを使用することができます。
my $i = 0;
my %new_hash = map { $i ^= 1 ? new_key($_) : new_val($_) } %hash;
申し訳ありませんが、私の例は特別なケースでした。私は 'new_key'と' new_val'をキーと値の両方の関数にしたいと思います。 (これは、私が尋ねた質問に答えます。) – Tim
ここで何をしようとしているのか本当にわかりません。 「map
のハッシュに相当する」とはどういう意味ですか?あなたはちょうど良いハッシュにmap
を使用することができます。キーが必要な場合は、keys
を使用してください。例えば$の値は$ _ハッシュ{$ _} "キー%ハッシュです」
@msglist = map { "value of $_ is $hash{$_}" } keys %hash
が、通常は
は言う";。
だけで結構です
あなたは両方をしたい場合、その後、全体のハッシュを使用しています。
割り当てについては、%new_hash = %old_hash
と間違って何ですか?
ディープコピーの問題はありますか?次に、Storable::dclone
を使用します。
キーと値の両方をクロージャで同時に使用しますか?そして、最初のマップでペアの束を作る:
@pairlist = map { [ $_ => $hash{$_} ] } keys %hash
私はあなたがこれをしたいと思うものの例を参照する必要がありますが、これまでのところ、私はいくつかの大きな古いモジュールを使用しての代わりにゼロ原因を見ることができます基本的なPerl。例えばへ
私は 'keys'を使うよりエレガントな代替手段を探していました。 'List :: Pairwise'と' List :: Gen'は、提案されているように、そのようなものを提供します。任務が決してなかったので、それはおそらく誤解です。プログラムを単純化するためにモジュールを使用する価値があるのは、それが味の問題だと思います。 – Tim
@Tim:List :: Genはいくぶん面白いようですが、私の人生でList :: Pairwiseを使う理由を考えることはできません。なぜなら、 'map {"は$ _ = > $ h {$ _} "} keys%h'は完全に明白です。つまり、私は自分自身が順序付けされたペアリストを頻繁に構築していることを知っています。 – tchrist
$ perlの-dを/ dev/null
DB<2> %p = (a=>'b', c=> 'd');
DB<5> p Dumper \%p
$VAR1 = {
'c' => 'd',
'a' => 'b'
};
キーと値を逆にします。
DB<6> %q = map { ($p{$_}, $_) } keys %p
DB<7> p Dumper \%q
$VAR1 = {
'b' => 'a',
'd' => 'c'
};
質問やその他の回答に見られるように、私は鍵をループすることができることを知っています。私は別の解決策があるかどうかを探していました。 (それはList :: Pairwiseでした。) – Tim
私は@eugeneソリューションにコメントを追加できないため、これを追加します。 それはこのように働いた (値がNaN
なったことを確認するためにmap
でprint $i
を追加)私はそれが好き、それは私のために動作しませんでした:
my $i = 0;
%hash = map { ($i=($i^1)+0) ? new_key($_) : new_val($_) } %hash;
- 1. perlのハッシュ
- 2. perlの - ハッシュ
- 3. perlでハッシュのハッシュをフィルタリングする
- 4. Perlでの配列のハッシュ
- 5. ハッシュのPerlプッシュ値
- 6. perlのハッシュ操作
- 7. Perl - (ハッシュとスカラーのハッシュ)のトラバースハッシュ?
- 8. Perlハッシュ参照
- 9. ハッシュperlの値の配列
- 10. Perlのハッシュ要素のワイルドカード
- 11. 以下のperlスクリプトのハッシュでのデバッグ
- 12. ハッシュのハッシュのperlハッシュをPHPに変換するには
- 13. Perl同じハッシュ内のハッシュ値へのハッシュ参照
- 14. ハッシュperlへの配列
- 15. oauth署名のPerlハッシュ
- 16. Perlサブ関数のハッシュ
- 17. MongoDB Perlでハッシュするカーソル
- 18. Perl - モジュール間での配列のハッシュ
- 19. Perlでハッシュの配列にアクセスする
- 20. Perlでハッシュの配列をループする
- 21. javascriptハッシュにPerlハッシュを繋ぐ方法
- 22. perlのあるハッシュから別のハッシュへの値のコピー
- 23. PerlのSDBM_Fileハッシュと通常のハッシュの違いは?
- 24. perlのネットワークインターフェイス設定ファイルのリストからハッシュのハッシュを作成
- 25. jsonをハッシュにして、このハッシュとperlの別のハッシュを比較する
- 26. 第3レベルキーによるハッシュのPerlのソート、ハッシュと
- 27. perlのハッシュのハッシュに関する問題
- 28. HadoopのPerlハッシュ/配列の実装
- 29. ハッシュをPerlに含める
- 30. どのようにしてPerlでハッシュのハッシュを作成できますか?
'リスト::ペアごと:: mapp'作品すばらしいです。 – Tim