特定のハッシュ要素が存在するかどうかを確認しようとしています。 *がどこにあるか、私は(つまり、その値は何でもかまいません)、ワイルドカードを使用したい、だから、Perlのハッシュ要素のワイルドカード
if (exists $hash{$key1}{*})
{
then do blabla
}
:私はハッシュのための2つのキーを持っています。このような状況でPerlのワイルドカード文字は何ですか?どうもありがとう!
特定のハッシュ要素が存在するかどうかを確認しようとしています。 *がどこにあるか、私は(つまり、その値は何でもかまいません)、ワイルドカードを使用したい、だから、Perlのハッシュ要素のワイルドカード
if (exists $hash{$key1}{*})
{
then do blabla
}
:私はハッシュのための2つのキーを持っています。このような状況でPerlのワイルドカード文字は何ですか?どうもありがとう!
ワイルドカード文字はありません。
あなたがそうのようなキーのリストを取得することができます:あなたはそれがgrep
か何かを使って長さ、テストを持っているかどうかを確認することができます
my @keys_in_hash = keys %{ $hash{key1} };
...。
あなたの元のコード
if (exists $hash{$key1}{*})
{
then do blabla
}
あなたが第2レベルのハッシュはどんなキーが含まれているかどうかを確認したい場合は、すべてのキーをピックアップしたい場合は、この
if (%{$hash{$key1}}) {
# do blabla
}
を行うことができますパターンにマッチするもの、たとえば「foo」で始まるすべてのキーを指定すると、次のようになります。
'keys $ hash {key1}'はPerl> = 5.14でしか動作しないことに言及してください。 – Axeman
以前のバージョンでは 'keys {$ hash {key1}}'キーが必要でした。 –
実際には、次のようにする必要があります: 'my @keys_in_hash = keys%{$ hash {$ key1}};' – shawnhcorey