我是perl的新手。我的脚本一起运行了几个月,现在它导致了一个问题,它不会发送电子邮件。该脚本实际上每周发送2个不同的图表(行和条)及其平均值。 这是抛出错误的一行。
$ graph-> set_legend(@week_start_dates [-4 ..- 1]); 错误消息 - 尝试修改不可创建的数组值,下标-4
是否与perl有关,你不能在左边增加索引。( - 4,-5)等。 任何想法都非常感激。谢谢
答案 0 :(得分:2)
是的,因为子程序参数是实际值的别名,所以该值必须存在,并且如果它们不存在则会创建正索引,但它不会延长数组以创建负索引,因为这会改变其他存在的索引的含义。
您可以通过以下方式看到:
perl -wle'@x = 1..3; sub{}->(@x[-4..-1])'
Modification of non-creatable array value attempted, subscript -4 at -e line 1.
所以你应该弄清楚为什么少于四个week_start_dates。
或者,如果可以接受少于四个week_start_dates,则可以使用以下内容:
@week_start_dates > 4 ? @week_start_dates[-4..-1] : @week_start_dates