string fullPath = @"Z:\path\test.pl"; string arguments = arg1 + arg 2 Process myProcess = Process.Start(fullPath, arguments); myProcess.WaitForExit(999); if(!myProcess.HasExited) { myProcess.Kill(); throw new Exception("Timed out while running process"); } #### ProcessStartInfo perlStart = new ProcessStartInfo(@C:\Strawberry\perl\bin\perl.exe"); perlStart.Arguments = "Z:\path\test.pl" + argument1 + argument2; perlStart.UseShellExecute = false; perlStart.CreateNoWindow = true; Process perl = new Process(); perl.StartInfo = perlStart; perl.Start(); perl.WaitForExit(); #### sleep(10) print "something"; #### sleep(5); print "something"; sleep(5); #### print "something"; sleep(10);