in reply to how to "rename" a global argument in subroutine?
Parse by reference:
my $red = undef; my $green = undef; my $blue = undef; sub change{ my($color1, $value1, $color2, $value2, $color3, $value3) = @_; ${$color1} = $value1; ${$color2} = $value2; # maybe: if defined $value2; ${$color3} = $value3; } change(\$red, 42, \$green, 255, \$blue, 11); print "($blue)";
Alternative:
#!/usr/bin/perl use strict; use warnings; my %COLORS = ( red => undef, green => undef, blue => undef, ); sub change2{ my($R) = @_; my %H = %$R; for my $key (keys %H){ $COLORS{$key} = $H{$key}; } } change2( {red=>5, green=>6, blue=>7} ); print $COLORS{red};
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: how to "rename" a global argument in subroutine?
by FreeBeerReekingMonk (Deacon) on Aug 11, 2015 at 18:26 UTC | |
by Anonymous Monk on Aug 11, 2015 at 18:48 UTC | |
|
Re^2: how to "rename" a global argument in subroutine?
by Anonymous Monk on Aug 11, 2015 at 18:42 UTC | |
by FreeBeerReekingMonk (Deacon) on Aug 11, 2015 at 18:52 UTC |