$ perl my %h = 'a'..'f'; sub modify { for (my $i = 1 ; $i < @_ ; $i+=2) { $_[$i] .= '_modified'; } } modify(%h); print "$_ => $h{$_}\n" for sort keys %h; ^D a => b_modified c => d_modified e => f_modified $ perl my %h = 'a'..'f'; # assignment to key (odd) positions has no side effects $_ .= '_modified' for %h; print "$_ => $h{$_}\n" for sort keys %h; ^D [the same output]