大佬教程收集整理的这篇文章主要介绍了Perl:无法将“on-the-fly”数组传递给sub,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
print strftime($template,@lt);
我只是想不出这个正确的Perl代码配方.它一直报告我调用strftime()的错误:
... use Date::Format; ... sub parse_date { if ($_[0]) { $_[0] =~ /(\d{4})/; my $y = $1; $_[0] =~ s/\d{4}//; $_[0] =~ /(\d\d)\D(\d\d)/; return [$2,$1,$y]; } return [7,7,2010]; } foreach my $groupnode ($groupnodes->get_nodelist) { my $groupname = $xp->find('name/text()',$groupnodE); my $entrynodes = $xp->find('entry',$groupnodE); for my $entrynode ($entrynodes->get_nodelist) { ... my $date_added = parse_date($xp->find('date_added/text()',$entrynodE)); ... $groups{$groupnamE}{$entrynamE} = {...,'date_added'=>$date_added,...}; ... } } ... my $imday = $maxmonth <= 12 ? 0 : 1; ... while (my ($groupname,$entries) = each %groups) { ... while (my ($entryname,$details) = each %$entries) { ... my $d = @{$details->{'date_added'}}; $writer->dataElement("creation",strftime($date_template,(0,12,@$d[0^$imday],@$d[1^$imday]-1,@$d[2],0))); } ... } ...
如果我使用()通过strftime()传递所需的数组,我得到:
arg 2到Date的类型:: Format :: strftime必须是./blah.pl第87行的数组(不是列表),靠近“))”
如果我使用[]传递所需的数组,我得到:
arg 2到Date的类型:: Format :: strftime必须是./blah.pl第87行的数组(不是匿名列表([])),靠近“])”
如何将数组动态传递给Perl中的sub?这可以通过php,Python,JS等轻松完成.但我无法用Perl来理解它.
编辑:我将代码减少到这几行,我仍然遇到了完全相同的问题:
#!/usr/bin/perl use warnings; use Strict; use Date::Format; my @d = [7,13,2010]; my $imday = 1; print strftime( q"%Y-%m-%dT12:00:00",$d[0^$imday],$d[1^$imday]-1,$d[2],0));
以上是大佬教程为你收集整理的Perl:无法将“on-the-fly”数组传递给sub全部内容,希望文章能够帮你解决Perl:无法将“on-the-fly”数组传递给sub所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。