配列に$#
を使用するなど、ハッシュのキーの数を調べるにはどうすればよいですか?Perlでハッシュのキー数を調べるにはどうすればよいですか?
答えて
scalar keys %hash
か、単に
keys %hash
あなたはスカラーコンテキストですでにしている場合、例えばmy $hash_count = keys %hash
または print 'bighash' if keys %hash > 1000
。
なお、$#array
は要素数を検出しません。最後のインデックスを検索します。 scalar @array
は要素の数を検出します。
次のように使用できるよう、あなたのハッシュのキーの数。あなたは、物事(または簡潔)を行うための$#array
スタイルが好きであれば、あなたはそれを好むことがあります。
$#{$hash};
CRITICAL EDIT:
ホールドを上...これは興味深いです。配列参照として使用する場合には機能しますが、外部で使用する場合は使用できません。これをチェックアウト:だから、それはあなたがあなたのハッシュの最後のキーにアクセスする場合は、一時に配列としてあなたの鍵を割り当てたことを提供する便利です
%hash = ("barney" => "dinosaur", "elmo" => "monster");
@array = sort {$a cmp $b} keys %hash;
print $array[$#{$hash}];
# prints "elmo"
この回答は私を驚かせたので、試してみました。それは動作しません。 – dave4420
@Dave:上記の重要な編集を確認してください。ヘッドアップをありがとう。 – Zaid
@ Zaid: '$#{$ hash} 'を' -1'に置き換えます。 '$ array [-1]'は常に '@ array'の最後の要素を意味します(' $ array [-2] 'は常に2番目から最後までなどを意味します)。 '$ hash'は'%hash'とは無関係です。あなたのコードでは、未定義の変数を配列参照として使用するので、perlは配列参照であると仮定します。 '警告を使う。厳密な;を使用し、最初にperlが何を言っているかを見てください。 – dave4420
をしかしない5.10の後:
use feature ":5.10";
my %p =();
say $#%p;
# $# is no longer supported
さらに悪い:
use feature ":5.10";
my %p = (a=>1, b=>2, c=>3);
say $#{%p};
# -1
これは簡単な方法でハッシュの任意のサイズのために動作します。
スカラーキーを出力する%hash;
申し訳ありませんが...これは、 'print'を使用する以外に、7年前に投稿された、重大にアップした、受け入れられた答えとどのように違いますか? –
スカラーキーを出力する%hash;
OR
$ X = keys%hash; print $ X;
(キー%ハッシュスカラーコンテキストへのさらなる変更が(スカラー変数に代入リストコンテキスト内のキーの値を返す) 。)
- 1. ハッシュの意味を調べるにはどうすればいいですか?
- 2. Perlのネストされたハッシュで特定のキーにアクセスするにはどうすればよいですか?
- 3. 配列の値がPerlのハッシュのキーであるかどうかを調べる方法は?
- 4. 配列のハッシュのPerlハッシュで最小値を見つけるにはどうすればよいですか?
- 5. 値にperlハッシュをソートし、それに対応してキーを並べ替えるにはどうすればいいですか? Perlで
- 6. PerlでUnicode文字列の長さを調べるにはどうすればよいですか?
- 7. Perlでサブルーチンの引数としてハッシュを使用するにはどうすればよいですか?
- 8. Perlでサブルーチンの引数としてハッシュを使用するにはどうすればよいですか?
- 9. 特定のキーに対してハッシュのハッシュを検索するにはどうすればよいですか?
- 10. Bashスクリプトに渡される引数の数を調べるにはどうすればよいですか?
- 11. Rubyオブジェクトのメソッドを調べるにはどうすればよいですか?
- 12. Chromeプラグインのソースコードを調べるにはどうすればよいですか?
- 13. データファイルをハッシュ/ハッシュ解除するにはどうすればよいですか?
- 14. ハッシュ(またはその要素)をperlで印刷するにはどうすればよいですか?
- 15. msiがタイムスタンプされているかどうかを調べるにはどうすればよいですか?
- 16. ActionScript 2でどのような関数が別の関数と呼ばれるのかを調べるにはどうすればよいですか?
- 17. Perlハッシュに既に特定のキーがあるかどうかを確認するにはどうすればよいですか?
- 18. Perlのハッシュにキーが存在するかどうかを確認するにはどうすればよいですか?
- 19. NetBeansでどのようにメモリリークを調べるにはどうすればいいですか?
- 20. テキストファイルの複数の単語の数を調べるにはどうすればよいですか?
- 21. perlでハッシュ配列を値でソートするにはどうすればよいですか?
- 22. Flash 9:ストリーミングトラックがモノであるかどうかを調べるにはどうすればよいですか?
- 23. IOSデバッガでサブビュープロパティを調べるにはどうすればいいですか
- 24. z3_astが節に対応するかどうかを調べるにはどうすればよいですか?
- 25. SWIGを使用してCでPerlハッシュを構築するにはどうすればよいですか?
- 26. 要素がテキストかどうかをPDFで調べるにはどうすればよいですか?
- 27. CGImageRefで1ピクセルのバイト数を調べるにはどうすればよいですか?
- 28. コントロールがタブコントロール上にあるかどうかを調べるにはどうすればよいですか?
- 29. 特定のデータを調べるにはどうすればいいですか
- 30. ブラウザがリフローしている回数を調べるにはどうすればよいですか?
$#+ 1 - 私たちは、要素のノーを取得します。私は$#のためにそれを意味しています# – joe
ああ、私は参照してください。まあ、 '$ array + 1'の上に' scalar @ array'をお勧めします。 :) – chaos
これには特別な理由があります – joe