在我的PERL代码中,我需要使用Windows命令提示符执行一些操作,例如打开记事本,即
system("start notepad");
现在,我观察到直到上一个语句完成,perl才会移至下一个语句。有什么方法可以在将命令发送给系统后,将perl移至下一条语句,而不检查系统任务是否结束。
我编写了一个示例代码来解释我的问题。我在这里显示了每个任务之后的时间。
use Time::HiRes qw(time);
use POSIX qw(strftime);
####################printing time code starts###########
$t = time;
$date = strftime "%Y%m%d %H:%M:%S", localtime $t;
$date .= sprintf ".%03d", ($t-int($t))*1000; # without rounding
print "Statement 1 executed at $date\n";
#######################printing time code ends###########
####################printing time code starts###########
$t = time;
$date = strftime "%Y%m%d %H:%M:%S", localtime $t;
$date .= sprintf ".%03d", ($t-int($t))*1000; # without rounding
print "Statement 2 executed at $date\n";
#######################printing time code ends#####
system("start notepad");
####################printing time code starts###########
$t = time;
$date = strftime "%Y%m%d %H:%M:%S", localtime $t;
$date .= sprintf ".%03d", ($t-int($t))*1000; # without rounding
print "Statement 3 executed at $date\n";
我的输出是:
Statement 1 executed at 20150101 19:09:37.614
Statement 2 executed at 20150101 19:09:37.614
Statement 3 executed at 20150101 19:09:37.647
显然,陈述2和陈述3之间存在很大差异,我想避免这种情况。请给个建议。
注意:启动记事本只是一个例子,我可能想将100MB文件从1个文件夹复制到另一个文件夹,并且我不希望perl在向系统发送命令后等待。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句