我有这个问题有一段时间了。
假设我有一个简单的数组,
my @arr;
foreach my $i (0..$#arr){
print "\$arr[$i] = '$arr[$i]'\n";
}
$#arr 只返回数组的最后一个索引
但是,如果我想将它用于更复杂的事情会发生什么?:
foreach my $i (0..$#@{$someHash{$}[$b]{$c}});
当然,我可以把它写成
foreach my $i (0..(scalar(@{$someHash{$}[$b]{$c}})-1));
但这只会使代码更加复杂。
所以我的问题是,除了简单的数组(引用、从函数调用返回的列表等)之外,$# 是否可以用于其他任何东西,如果可以,如何使用?
谢谢