my %myHash = (
key1 => {
test1 => 1,
test2 => 2,
},
key2 => {
test1 => 3,
test2 => 4,
},
);
my $myRef = $myHash{ "key". ((~~keys %myHash) + 1) } //= {
test1 => 5,
test2 => 6,
};
ユーモアと私は上記が実際に実用的であると仮定します。この新しく作成されたキーを参照によってどのように削除できますか?明らかに Perlハッシュリファレンスによる基本キーの削除
delete $myRef;
は動作しません
EDIT:だから、zostayから、私は以下のいる ...
sub deleteRef {
my ($hash_var, $hash_ref) = @_;
for (keys %$hash_var) {
delete $hash_var->{$_} if ($hash_var->{$_} == $hash_ref);
}
}
使用法:
deleteRef(\%myHash, $myRef);
その方法は?まだ推奨されていませんか?
によって何を意味するかにかかっています私は多くの行のハッシュのハッシュにアクセスしているので、 'タイプ'を減らすためにハッシュキーへの参照を使用しています。サブルーチンについてどう思いますか? –
サブは問題ありません。そのようなことはほぼ普遍的に改善されるので、参照の比較はお勧めしません。しかし、「より良い」という定義は議論の対象となり、解決しようとしている実際の問題の対象となります。実際の問題を知らなければ、私はよりよい解決策が何になるか分かりません。 – zostay