There are three main uses for Perl references.
Perl references can be used to create complex data structures, for instance hashes of arrays, arrays of hashes, hashes of hashes, and more.
Since all arguments to subroutines are flattened to a list of scalars, it is not possible to use two arrays as arguments and have them retain their individual identities.
my @a1 = qw(a b c); my @a2 = qw(d e f); printargs(@a1, @a2); sub printargs { print "@_\n"; } |
The above example will print out a b c d e f.
References can be used in these circumstances to keep arrays and hashes passed as arguments separate.
References are used extensively in object oriented Perl. In fact, Perl objects are references to data structures.