Objaw: $c="foo";
powoduje błąd, a $b="foo";
nie.Perl, zachowanie zmienne, rozbieżność w oparciu o nazwę
Mój skrypt to dosłownie 3 linie. Poniższa produkuje żadnych błędów lub ostrzeżeń
use strict;
$b = "foo";
print $b;
ale jeśli przejść do następującego, otrzymuję „wymaga wyraźnej nazwa pakietu” błąd.
use strict;
$c = "foo";
print $c;
,
Rozumiem, że use strict;
wymaga zmiennych być zadeklarowane przed użyciem, a zmieniając $c = "foo";
do my $c = "foo";
rzeczywiście zapobiec błąd, ale sam nie wyjaśnia różnicę.
Czy ktoś może rzucić trochę światła tutaj? Jestem pewien, że brakuje mi czegoś oczywistego. Używam Strawberry Perl v5.16.3 w Windows 7 x64. Mam edycji w EJ i wykonywania moich skryptów z linii poleceń, poprzez c:\strawberry> perl test.pl
Ze względu na ich szczególne znaczenie dla 'sort', nigdy nie powinno się używać' $ a 'i' $ b' w twoim kodzie w ogóle, nawet pomijając tę różnicę, którą znalazłeś. – DVK
To brzmi jak dobry nawyk, dzięki DVK. –