Удаление базового ключа Perl через ссылку на хэш

my %myHash = (
    key1 => {
        test1 => 1,
        test2 => 2,
    },
    key2 => {
        test1 => 3,
        test2 => 4,
    },
);

my $myRef = $myHash{ "key". ((~~keys %myHash) + 1) } //= {
    test1 => 5,
    test2 => 6,
};    

Позабавьте меня и предположите, что вышеизложенное действительно практично. Как я могу удалить этот вновь созданный ключ по ссылке?

delete $myRef;

Очевидно, не работает

РЕДАКТИРОВАТЬ: Так вот от зостай у меня следующее...

sub deleteRef {
    my ( $hash_var, $hash_ref ) = @_;

    for ( keys %$hash_var ) {
        delete $hash_var->{$_} if ($hash_var->{$_} == $hash_ref);
    }
}

Использование:

deleteRef(\%myHash, $myRef);

Как это? Все еще не рекомендуется?

5
задан Jonathan Walker Sr. 16 August 2012 в 17:09
поделиться