Mam pytanie dotyczące Perla i zakresu. Mam wspólny plik z dużą ilością różnych zmiennych. Wymagam wspólnego pliku w moim głównym skrypcie, ale nie mam dostępu do zmiennych; wydają się być poza jej zakresem. Zakładałem, że deklaracja our
rozwiąże ten problem, ale wydaje się, że nie działa.Dlaczego mój skrypt Perla nie może zobaczyć zmiennych my(), które zdefiniowałem w innym pliku?
Scenariusz 1: common.pl
#!/usr/bin/perl
our $var1 = "something";
our $var2 = "somethingelse";
Scenariusz 2: ftp.pl
#!/usr/bin/perl
use strict;
use warnings;
require('common.pl');
print $var1;
pojawia się błąd:
Global symbol "$var1" requires explicit package name
Globalny symbol $ zm1 wymaga wyraźnej nazwę pakietu. – jrockway
Przeczytaj http://perl.plover.com/FAQs/Namespaces.html –
Pozycja 1 w efektywnym programowaniu perlowym (ISBN: 0201419750, Joseph Hall i Randal Schwartz) jest zatytułowana: Know Your Namespaces. Jest to doskonałe odniesienie do tego, a także świetna książka. –