加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

数组 – 将数组匹配到引用数组中的值 – 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!!";
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读