in reply to Sub hash param by reference
#!/usr/bin/perl use strict; use warnings; use Data::Dump qw(pp); $!=1; my %hash; $hash{id1} = 001; $hash{id2} = 002; print "initial hash: ", pp (\%hash), "\n"; my $hash_ref = \%hash; my $ref = \$hash{id2}; # A reference to id2 $$ref = 003; #use ref to a scalar (value of id2) print "modified hash: ", pp (\%hash), "\n"; modify_anon_hash_value ($ref); print "mod by sub : ", pp (\%hash), "\n"; more_normal_way($hash_ref); print "mod more usual: ", pp ($hash_ref), "\n"; sub modify_anon_hash_value #sub doesn't know which { #key's value that it is my $ref = shift; #modifying $$ref = 5; } sub more_normal_way #usual pass the entire hash as ref { my $href = shift; $href->{id2}=8; #sub know which key to use } __END__ initial hash: { id1 => 1, id2 => 2 } modified hash: { id1 => 1, id2 => 3 } mod by sub : { id1 => 1, id2 => 5 } mod more usual: { id1 => 1, id2 => 8 }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Sub hash param by reference
by hankcoder (Scribe) on Jul 08, 2016 at 04:32 UTC | |
by Marshall (Canon) on Jul 08, 2016 at 07:06 UTC | |
by hankcoder (Scribe) on Jul 08, 2016 at 13:05 UTC | |
|
Re^2: Sub hash param by reference
by hankcoder (Scribe) on Jul 10, 2016 at 07:52 UTC | |
by hippo (Archbishop) on Jul 10, 2016 at 10:26 UTC | |
by hankcoder (Scribe) on Jul 10, 2016 at 12:44 UTC |