Índices de matriz normalmente começam em 0 porque o valor de
$[
é normalmente 0; se você definir
$[
para 1, então as matrizes começam em 1, o que faz
Fortran programadores felizes, e por isso vemos exemplos como este na
página do manual perl(3)
:
<code>foreach $num ($[ .. $#entry) {
print " $num\t'",$entry[$num],"'\n";
}</code>
E, claro, você pode definir$[
a 17 para que os arrays comecem em algum número aleatório, como 17 ou 4, em vez de 0 ou 1. Essa era uma ótima maneira de sabotar os autores de módulos.
Felizmente, a sanidade prevaleceu. Esses recursos são agora reconhecidos como erros. A lista de discussão perl5-porters agora tem uma frase de efeito para esses recursos: eles são chamados de "ação à distância". O princípio é que uma declaração em uma parte do programa não deve alterar drástica e invisivelmente o comportamento de alguma outra parte do programa.|Mark Jason Dominus|Sins of Perl Revisited
[6]