process($data_ref,\@set_up,$template,*OUT); # Process sub process { my @data = @{ shift()}; my @set_up = @{ shift()}; my $template = shift; #For unpack local *FH = shift; foreach my $record (@data) { --do things--} } #### my $data_ref = shift; #Big array foreach my $record (@{$data_ref}) { -- do things more efficiently -- }