我的代码是:
#!/usr/local/bin/perl
use Time::Piece;
use Time::HiRes;
use strict;
use warnings 'all';
my $i = 1;
my $starttime = localtime->strftime('%Y%m%d%H%M');
open my $file, '>', 'order.properties' or die $!;
for ($i = 1; $i <= 10; $i++){
print $file "Start_time_$i = $starttime\n";
sleep (120);
}
close $file;
在上面的代码中,我将创建一个order.properties
文件并编写一个名为Starttime
的变量,并以YYYYMMDDHH24MM
的格式分配日期和时间,并在睡眠状态下将该变量迭代10次。 2分钟,但是睡眠不起作用,并且在脚本中添加了睡眠功能后,它只是在创建一个文件,没有向其中写入任何内容。
对于for循环的每次迭代,我需要2分钟的睡眠时间,例如:
Start_time_1 = 201812141350
Start_time_2 = 201812141352
输出应与上面类似。
答案 0 :(得分:1)
您在循环之外设置了$starttime
,并且从不对其进行更改。因此,它始终具有相同的值。如果要在循环中进行更改,则需要在循环中进行更改。
for ($i = 1; $i <= 10; $i++){
my $starttime = localtime->strftime('%Y%m%d%H%M');
print $file "Start_time_$i = $starttime\n";
sleep (120);
}
当然,在那时,您必须怀疑是否有充分的理由完全拥有该变量。
for ($i = 1; $i <= 10; $i++){
print $file "Start_time_$i = ", localtime->strftime('%Y%m%d%H%M'), "\n";
sleep (120);
}
此外,请在此处使用foreach
循环,以简化维护程序员的生活。
foreach my $i (1 .. 10) {
print $file "Start_time_$i = ", localtime->strftime('%Y%m%d%H%M'), "\n";
sleep (120);
}