use warnings; use strict; my @cmd = ('C:\Program Files\Mozilla Firefox\firefox.exe', '--version'); die "\@cmd must have more than one element" unless @cmd>1; open my $fh, '-|', @cmd or die $!; my $out = do { local $/; <$fh> }; # slurp close $fh or die $! ? $! : "\$?=$?"; chomp $out;