数组 – 将数组匹配到引用数组中的值 – Perl
发布时间:2020-12-16 06:18:38 所属栏目:大数据 来源:网络整理
导读:我有以下数组引用数组: my @holidays = [[2012,'01','02'],[2012,'16'],'02','20'],'04','05','28'],'07','04'],'09','03'],'10','08'],'11','12'],'22'],'12','25']]; 这是IRS在2012年认可的法定假日.我想将数组@dueDate与该数组中的值匹配,如果存在,则返
我有以下数组引用数组:
my @holidays = [[2012,'01','02'],[2012,'16'],'02','20'],'04','05','28'],'07','04'],'09','03'],'10','08'],'11','12'],'22'],'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标准数组 – (年,月,日) 解决方法
这应该会让你走上正轨.我在你的代码中看到的两个问题 – 数组数组应该在外部部分有正常的括号,并使用~~运算符来比较数组是否相等.
my @holidays = ([2012,'25']); my $i; my @duedate = [2012,'02']; for ($i = 0; $i < @holidays; $i++) { if (@holidays[$i] ~~ @duedate) { print "matched!!"; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |