http://qs1969.pair.com?node_id=646593


in reply to Re: Get reference to newly-created array
in thread Get reference to newly-created array

By the way, it's =s when you pass a reference to an array, and =s@ when you pass a reference to a scalar.

Both seem to work and do what I want. Is there any particular reason to choose one over the other?

$ cat test-gol.pl #!/usr/bin/perl use Getopt::Long qw/:config pass_through/; my ($array, @array); # option names are: [sa][nw] s=scalar, a=array n=no '@', w=with '@' GetOptions( 'sn=s' => \$array ) or die 'options'; print "Scalar @$array\n"; undef $array; GetOptions( 'sw=s@' => \$array ) or die 'options'; print "Scalar @$array\n"; GetOptions( 'an=s' => \@array ) or die 'options'; print "Array @array\n"; @array = (); GetOptions( 'aw=s@' => \@array ) or die 'options'; print "Array @array\n"; $ perl test-gol.pl --sn one --sn two --sw one --sw two --an one --an t +wo --aw one --aw two Scalar Scalar one two Array one two Array one two