in reply to Re: Re: Packages, references, & data hiding...
in thread Packages, references, & data hiding...

There is one other thing you need to consider between return a hash or hash-ref. Do you want the original data editable?
Look at this code:
sub hash { my $h = shift; return %$h; } sub href { my $h = shift; return $h; } my $n = { moo => 'blah', arrg => 'no' }; my %hash = hash($n); $hash{arrg} = 'yes'; print join(' ',%$n) . "\n"; # Output: moo blah arrg no my $m = { moo => 'blah', arrg => 'no' }; my $hash = href($m); $hash->{arrg} = 'yes'; print join(' ',%$m) . "\n"; # Output: moo blah arrg yes
The first one is what you were doing originally, I don't know why it didn't work. But it is better to return a hash-ref unless you really need to protect the original data (which anyone can get to with $p->{buddys_list} anyway if they really want to).