2013-01-14 64 views
1

只是對這種比較感興趣,任何線索?在這種情況下,Perl會用什麼來比較?

說,有兩個變量如下:

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

如果像下面在Perl代碼,

if $p1 lt $p2 

什麼Perl將採取比較又如何呢?

回答

7

lt是字符串比較運算符,它比較兩個操作數的字面意義。

在你的情況下,兩個字符串

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

將在圖示的方式進行比較,並停止在第9位(第一個位置的字符是不同的,還要注意字符串索引從0開始),即1$p12$p2中。字面上也1小於2。所以$p1 lt $2是真的。

+0

非常容易理解的答案。謝謝。 – Yang

-1

打破你的任務:

  • 你的字符串分隔成(start_stringtime,end_stringtime)字符串對
  • 將每個字符串中的字符串對成日期時間
    (有此一gazillion modules,選擇一個(s)適合你的任務)
  • 計算每對的時間段
  • 比較時間段的數字 - if $p1 < $p2

這個問題:
Convert string "20-May-07" to date and manipulate

會給你一些線索

相關問題