use strict; use warnings; system ("c:\\Perl\\DataPro\\convert.bat"); open(DPSLOTFILE, "< c:\\Perl\\DataPro\\newreport.txt") or die "Can't open file: $!"; while ( ) { my $dpdrivloc = "MSL6000 Trinity"; if ( /\Q$dpdrivloc\E:\s*(\d+)/ ) { #use match for system call! system("c:\\Perl\\DataPro\\omnimm -eject \"MSL6000 Trinity\" $1 -location \"blahblahblah\""); print OUTFILE "$1"; } } close DPSLOTFILE;