我引用下面的數組的數組:匹配陣列的值引用數組中 - Perl的
my @holidays = [[2012,'01','02'],[2012,'01','16'],[2012,'02','20'],[2012,'04','16'],[2012,'05','28'],[2012,'07','04'],[2012,'09','03'],[2012,'10','08'],[2012,'11','12'],[2012,'11','22'],[2012,'12','25']];
哪些是IRS在2012年公認的法定節假日,我想數組匹配@dueDate到該數組中的一個值,並返回1,如果存在則返回true。
while ($holidays[@dueDate]){
print ("Found Holiday \t join('-',@dueDate)");
@dueDate = Add_Delta_Days(@dueDate, 1);
if (Day_of_Week(@dueDate) > 5){
@dueDate = Monday_of_Week((Week_Number(@dueDate)+1), $dueDate[0]);
}
}
是我目前的嘗試 - while語句的條件從來都不是真的。我已經嘗試了幾種不同的引用和解引用假期的組合,但無濟於事。
在while語句中操作評估的最好方法是什麼,以便當@dueDate在上面的數組中包含日期時執行該塊。
注:@dueDate爲Date :: Calc的標準陣列 - (年,月,日)
多少元素不@dueDate包含哪些內容? –
@dueDate包含3個元素 - 四位數年,兩位數月份和兩位數日。 – voteblake
這是兩個變量是如何在while語句的調用顯示在Eclipse調試器: 的dueDate \t ... \t \t [0] \t [1] \t [2] \t @holidays \t \t ... \t [0] \t ARRAY(0x3567c78)... \t \t \t [0] \t ARRAY(0x356a4f0)... \t \t \t \t [0] \t \t \t \t [1] \t \t \t \t [2] \t \t \t [1] \t ARRAY(0x379d4f0)... \t \t \t [2] \t ARRAY(0x356b898)... \t \t \t [3] \t ARRAY(0x3567948)... \t \t \t [4] \t ARRAY(0x2a846d8)... \t \t \t [5] \t ARRAY(0x356bf88)... \t \t \t [6] \t ARRAY(0x2a84738)... \t \t \t [7] \t ARRAY(0x356bda8)... \t \t \t [8] \t ARRAY(0x356b880)... \t \t \t [9] \t陣列(0x356b8c8)... \t \t \t [10] \t陣列(0x356bd60)... – voteblake