#! usr/bin/perl -wlnaF';' use strict; { my $outfile = "outfile.txt"; my @result; # Assign fields to variables my $var1 = $F[0]; my $var2 = $F[1]; my $var3 = $F[2]; # Push fields into an array push @result, ( "$var1 $var2 $var3" ); # This debug print shows all 3 infile lines were processed print "Processed infile line no.: $."; END { # This debug print shows only 1 element in array print "Array contains: " . @result . " element(s)."; # pass array by reference and filename by value writeToFile( \@result, $outfile ); } } sub writeToFile { # Takes a reference to an array and a filename as input # Writes the contents of the array to the file my $array_ref = $_[0]; my $filename = $_[1]; open OUTFILE, "> $filename" or die; foreach ( @{ $array_ref } ) { print OUTFILE; } close OUTFILE; }