gpt4 book ai didi

arrays - 将数组与引用数组中的值匹配 - Perl

转载 作者:行者123 更新时间:2023-12-03 22:16:10 26 4
gpt4 key购买 nike

我有以下数组引用数组:

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']];

哪些是 2012 年 IRS 认可的法定假日。我想将数组 @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 标准数组 - (Year, Month, Day)

最佳答案

这应该让你走上正轨。我在您的代码中看到了两个问题 - 数组数组的外部应该有正常的括号,并使用 ~~ 运算符来比较数组的相等性。

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']);
my $i;
my @duedate = [2012, '01', '02'];

for ($i = 0; $i < @holidays; $i++)
{
if (@holidays[$i] ~~ @duedate)
{
print "matched!!";
}
}

关于arrays - 将数组与引用数组中的值匹配 - Perl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11004482/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com