我有一个脚本,它将根据timeinIF条件执行某些操作。所以基本上IF会寻找当前时间,即小时和分钟。
这是脚本:
use strict;
use warnings;
my $TIME = `date '+%H%M'`;
chomp $TIME;
print $TIME."\n";
if (( $TIME > 0100) && ($TIME < 0300)){
print "1st IF\n";
} elsif (( $TIME > 0300) && ($TIME < 0500)){
print "2nd IF\n";
} else {
print "Default IF\n";
}
Run Code Online (Sandbox Code Playgroud)
让我们说现在是时候了0130,它假设打印1st IF. 但它的印刷Default IF。同样,当时间0430到了,它假设打印2nd IF. 但它的印刷Default IF。
但是当我用双引号将时间值括起来时,""它就起作用了。如下图——
if (( $TIME > "0100") && ($TIME < "0300")){
Run Code Online (Sandbox Code Playgroud)
是否$TIME解析为字符串?我在$TIME想会有数字并且不需要引号。
正如您在perlnumber中发现的那样,以零开头的文字数字被解释为八进制数。0100是64并且0300是 192。
对字符串进行数字化时,前导零将被忽略。
另请参阅Time::Piece了解如何在 Perl 中处理时间而无需支付费用。
use Time::Piece;
my $time = localtime->strftime('%H%M');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |