2010-03-10 5 views
5

Perché non c'è nessun errore rilasciato da strict:

use strict; 

$a = $a + 1; 

risposta

14

$ ae $ b sono globali speciali utilizzati da sort, quindi sono sempre definito. Provalo invece con $ c e riceverai un errore.

+7

Nota che questo significa usare $ a e $ b per altri scopi è una pessima idea. (L'utilizzo di una variabile chiamata $ c è anch'essa negativa, ma in misura minore e per altri motivi.) – ysth

5

$a è una variabile globale speciale. Non ha bisogno di essere dichiarato. Vedi perldoc perlvar.

2

In Perl ci sono alcune variabili globali. Qui $a e $b vengono utilizzati nella funzione sort.

penso che potreste aver notato, come in questa affermazione:

sort { $a <=> $b } @array_name ; 
6

Anche se strict non si lamentano gli speciali $a e $b variabili, perlcritic rileverà il loro utilizzo:

Magia le variabili devono essere assegnate come "locale" ... (Gravità: 4)

Problemi correlati