http://www.perlmonks.org?node_id=415270


in reply to Re: recursive reference delete subroutine
in thread recursive reference delete subroutine

I disagree; I think that answer merely hopes for a solution instead of answering the question directly.

use Test::More tests => 2; sub undef_hash { my $ref = shift; undef $ref; } sub assign_hash { my $ref = shift; %$ref = (); } my $hash_one = { qw( foo bar baz quux ) }; undef_hash( $hash_one ); is( keys %$hash_one, 2, 'undef on hash reference should not clear it' ); my $hash_two = { qw( foo bar baz quux ) }; assign_hash( $hash_two ); is( keys %$hash_two, 0, 'assigning empty list to hash reference should clear it' );

Update: Ahh, I misunderstood. Yes, replacing the subcall will probably work.