sub extractData { my @projects; push @projects, [ \readOnly( "$proj Data.txt" ), "A"]; unless( $pointerProj eq "NONE" ) { push @projects, [ \readOnly( "$pointerProj Data.txt", "B"]; } for( @projects ) { my @UTdata = $_->[0]; my $key = $_->[1]; ... } } sub readOnly { my @contents; my $filePath; my $file; my $errMsg; $filePath = "$path\\" . $_[0]; $errMsg = "Unable to read $filePath: $!"; open $file, '<', $filePath or die $errMsg; @contents = <$file>; close $file; return @contents; }