use strict; use warnings; use Data::Dumper; testsub( my $ref1, 'hi' ); print Dumper( $ref1 ); # output: $VAR1 = undef; my $ref2; testsub( $ref2, 'hello' ); print Dumper( $ref2 ); # output: $VAR1 = undef; my $ref3 = []; testsub( $ref3, 'howdy' ); print Dumper( $ref3 ); # output: $VAR1 = [ 'howdy' ]; sub testsub { my ( $ref, @args ) = @_; push( @$ref, @args ); }