sub func1(\@) { my $arg1 = shift; @arr=@{$arg1}; $,="#"; print @arr; func2(@arr); } sub func2(\@) { my $arg1=shift; my @numbers= @{$arg1}; $,="-"; print @numbers; #not printed at all (?) print "\n"; print $arg1->[0]; print $arg1; #prints 10 (?), it should have been a reference print "\n"; } $,=" "; @arr=(10,400,2,7,20,40,23,100,2); print "original Array is ", @arr,"\n"; func1(@arr); print "\n";