Perl将在这种情况下进行比较?

时间:2013-01-14 01:37:16

标签: perl operators

只是对这种比较感兴趣,任何线索?

假设有两个变量如下:

$p1 = "2013-01-11/2013-01-04";
$p2 = "2013-01-12/2012-01-05";

如果在Perl中有以下代码,

if $p1 lt $p2

Perl需要进行比较以及如何进行比较?

2 个答案:

答案 0 :(得分:7)

lt是字符串比较运算符,它比较了字面意义上的两个操作数。

在你的情况下,两个字符串

2013-01-11/2013-01-04
||||||||||
2013-01-12/2012-01-05

将以图示的方式进行比较,并停在第9个位置(第一个位置字符不同,也注意字符串索引从0开始),即1中的$p1和{{1}在2中。并且$p2字面上还小于1。所以2是真的。

答案 1 :(得分:-1)

分解你的任务:

  • 将您的字符串分成(start_stringtime,end_stringtime)字符串对
  • 将字符串对中的每个字符串转换为日期时间
    (这里有一个gazillion modules,选择一个适合你的任务)
  • 计算每对的时间段
  • 以数字方式比较时间段 - if $p1 < $p2

这个问题:
Convert string "20-May-07" to date and manipulate

会给你一些线索