Arrays 推入负数组

Arrays 推入负数组,arrays,perl,negative-number,Arrays,Perl,Negative Number,有没有办法将值推入负数组 假设我正在做这样的事情 my @arr; push (@arr, "one"); push (@arr, "two"); push (@arr, "three"); $arr[-1] = "neg_one"; $arr[-2] = "neg_two"; $arr[-3] = "neg_three"; for (my $a=-3;$a<@arr;$a++){ print "Array[".$a."]::".$arr[$a]."\n"; } # Return

有没有办法将值推入负数组

假设我正在做这样的事情

my @arr;
push (@arr, "one");
push (@arr, "two");
push (@arr, "three");
$arr[-1] = "neg_one";
$arr[-2] = "neg_two";
$arr[-3] = "neg_three";
for (my $a=-3;$a<@arr;$a++){
    print "Array[".$a."]::".$arr[$a]."\n";
}

# Return
Array[-3]::neg_three
Array[-2]::neg_two
Array[-1]::neg_one
Array[0]::neg_three
Array[1]::neg_two
Array[2]::neg_one

print "Array length: ".@arr."\n";
# Returns 3
my@arr;
推动(@arr,“一”);
推动(@arr,“2”);
推动(@arr,“三”);
$arr[-1]=“负一”;
$arr[-2]=“负二”;
$arr[-3]=“负三”;

对于(my$a=-3;$aPerl数组不能在索引0之前有元素。使用小于零的索引访问相对于数组末尾的元素,因此

my @arr = qw/ a b c d /
$arr[-1]
d
$arr[-2]
c
,等等


如果希望存储函数的值,则应转换这些值,使其从零开始,间隔为1。请注意,如果要存储f(x)的值,则会出现类似问题对于间隔为0.1的x值,除了现在的问题是缩放而不是偏移量。

是有意义的。谢谢,先生。您也可以使用散列。这效率较低,但在您不知道将遇到的最大负数的情况下有效。//您还可以使用两个数组:一个用于负数iNDEX(使用否定索引访问),一个用于非负索引。