in reply to Alias vs Reference
What exactly is the difference between an alias and a reference?
In your first example, $_ is another name that can be used to refer to each of the elements $arr[0], $arr[1] etc. in turn.
If your second example, $aref refers to the entire array. To get to individual elements of that array you must dereference it and index it. eg. $aref->[0], $aref->[1] etc.
how can I create an alias explicitly (without using any extra module).
You can do this using typeglobs.
Eg.
#! perl -slw use strict; ## An array with some contents my @array = 'a'..'z'; ## Tell strict we are going to use a global our @alias; ## Set the array reference of the typeglob *alias ## to point to the lexical array we set up earlier *alias = \@array; ## Now when we use @alias, we are (also) using @array print $alias[ 0 ], ' : ', $alias[ 25 ]; ## changes to either affect both ## Or rather change via either name ## affect the same storage $alias[ 0 ] = 'fred'; $array[ 25 ] = 'bill'; print $alias[ 0 ], ' : ', $alias[ 25 ]; print $array[ 0 ], ' : ', $array[ 25 ]; __END__ C:\test>junk a : z fred : bill fred : bill
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Alias vs Reference
by cheekuperl (Monk) on Jun 16, 2012 at 05:01 UTC |