$ perl -wle 'my @388=0..2;'
Can't use global @388 in "my" at -e line 1, near "my @388"
Execution of -e aborted due to compilation errors.
$ perl -wle '@388=0..2;'
$
Onde posso aprender mais sobre o misterioso @0 ... @9999 do Perl, etc.?
$ perl -wle 'my @388=0..2;'
Can't use global @388 in "my" at -e line 1, near "my @388"
Execution of -e aborted due to compilation errors.
$ perl -wle '@388=0..2;'
$
Onde posso aprender mais sobre o misterioso @0 ... @9999 do Perl, etc.?
Estes são "identificadores especiais" do primeiro tipo mencionado em
perldata
:Todos
$0
,@0
, e%0
se enquadrariam nesse tipo de identificador, mas$0a
,@0a
, e%0a
não e gerariam um erro de sintaxe se você tentasse usá-los.Como esses nomes começam com um dígito, eles sempre têm como escopo o
main
pacote e não podem ser localizados commy
. Isso é mencionado noperlvar
manual :As variáveis numéricas escalares
$0
( ,$1
,$2
, ...) são reservadas e documentadas. A variável$0
contém o nome do programa atual, enquanto as outras são somente leitura e contêm os bits capturados da expressão regular mais recente.As variáveis array e hash com os mesmos nomes não são usadas pelo Perl de nenhuma forma documentada (além de terem "um significado especial", como mencionado acima), e poderiam ser usadas por alguém que quisesse escrever código Perl ofuscado.