Ho una domanda relativa a Perl e scoping. Ho un file comune con molte variabili diverse. Ho bisogno del file comune nel mio script principale, ma non riesco ad accedere alle variabili; sembrano essere al di fuori del suo scopo. Supponevo che una dichiarazione our
avrebbe risolto il problema, ma non sembra funzionare.Perché il mio script Perl non può vedere le nostre() variabili che ho definito in un altro file?
Script 1: common.pl
#!/usr/bin/perl
our $var1 = "something";
our $var2 = "somethingelse";
Script 2: ftp.pl
#!/usr/bin/perl
use strict;
use warnings;
require('common.pl');
print $var1;
ottengo l'errore:
Global symbol "$var1" requires explicit package name
Il simbolo globale, $ var1, richiede un nome di pacchetto esplicito. – jrockway
Leggi http://perl.plover.com/FAQs/Namespaces.html –
L'elemento 1 in Programmazione Perl effettiva (ISBN: 0201419750, Joseph Hall e Randal Schwartz) è intitolato: Conosci i tuoi spazi dei nomi. È un riferimento eccellente per questo e anche un grande libro. –