in reply to Help with references
I wont reiterate the importance of 'strict' and 'warnings' ... (it is very useful) instead, I'm gonna tell you what you won't hear from anyone else.
I post this because you said this is your first programming language. Others will disagree with what I am about to tell you, and this may seem like weird advice, but you can judge for yourself. ... Disclaimer: extremely biased opinion follows ... IMHO the single best way to 'wrap your brain' around working with references is to absolutely avoid using the 'backslash notation' whenever possible, and just treat everything as a scalar. This may take a moment to sink in, but let me explain, and consider this example ...
### re-worked version of your original code my $ref1 = [(0..9)]; ### start with anon array refs my $ref2 = [('a'..'l')]; ### from the very beginning my ($aOne, $aTwo) = &f($ref1, $ref2); print '@a1 is: '. "@{$aOne}\n"; print '@a2 is: '. "@{$aTwo}\n"; sub f { my $a1 = shift || die 'Hey! I expected an array ref '; my $a2 = shift || die 'expected array ref here too '; ### do something, for example ... @{$a2} = reverse @{$a2}; return ($a1, $a2); } __END__ @a1 is: 0 1 2 3 4 5 6 7 8 9 @a2 is: l k j i h g f e d c b a
Just remember: 1) "scalars can hold anything" (the variables with the dollar sign in front) use them; 2) give those scalars a good name to reflect what's expected of them; and 3)properly 'morph' those scalars into proper versions of what they are holding with @{$foo}, @$foo, %{$foo}, or %$foo, notation .. or $foo->(), $foo->{baz}{blee}{blaa}( or whatever else is appropriate ) and you're done.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Help with references
by beable (Friar) on Jul 02, 2004 at 02:24 UTC |