open( my $input, "<", $file ) or return; # can't read, can't test. Perhaps mark as a failure? my $line = <$input>; return unless $line =~ /^#!\s*(.*perl\S*)/; my $desired_interpreter = $1 close( $input );