@AllFileDetails[0] = "blah, blah, blah"; @AllFileDetails[1] = "foo, bar, diddledum"; print "Printing array.\n"; print @AllFileDetails; print "\nCalling subroutine now\n"; &WriteToDisk(details => \@AllFileDetails, filename => 'files.txt'); exit; sub WriteToDisk { my %params = @_; my @arraytowrite = @{$params{details}} || (); my $writefile = $params{filename} || ''; my $text = $params{text} || 'no text'; unless ( @arraytowrite && $writefile ) { print "Usage: WriteToDisk( filename => file to use, details => reference to an array holding the details "; return 0; } print "\nInside the subroutine 'WriteToDisk' now.\n"; print "Printing array.\n"; print @arraytowrite; exit; open HANDLE,$writefile or die "Cannot open open output file $writefile for writing:$!\n"; print HANDLE $ReportGenerated; print HANDLE @arraytowrite; close HANDLE; }