use strict; use warnings; use Data::Dumper; my @list = qw(1 2 3 4); func(@list, 'a', 'b', 'c'); sub func { my (@list, $s1, $s2, $s3) = @_; print Dumper(\@list), "\n"; print Dumper(\$s1), "\n"; print Dumper(\$s2), "\n"; print Dumper(\$s3), "\n"; }