in reply to Explaining

# declare a subroutine # takes two strings as arguments sub load_array($$) { # assign the two strings to two local variables, $a_ref and $file # so, if called as &load_array('foo','bar'), $a_ref eq 'foo' and # $file eq 'bar'. my ($a_ref, $file) = @_; # opens the file for read-only access # if the open fails, the program exits with the supplied message open (FILE, $file) or die "Can't open $file:$!\n"; # the array pointed to by $a_ref is assigned the contents # of the file @{$a_ref} = <FILE>; # the file is closed close FILE; # newlines are removed from each element of the array chomp @{$a_ref}; }
Looks to me that this code is designed to be used like so:
my($ref) = \@array; my($file) = '/usr/dict/words'; &load_array($ref,$file); # $ref now contains a reference to an array which contains # all the words in /usr/dict/words, with the newlines # removed.

Cheers,
Shendal