use strict; use warnings; use vars( @list0, @list1, @list2 ); sub DoSomething( \@ \@ \@ ) { my( $listRef0, $listRef1, $listRef2) = @_; #do something here push @$listRef0, somelist; push @$listRef1, somelist; push @$listRef2, somelist; } #main program DoSomething( \list0, \list1, \list2 );