J'ai une question concernant Perl et la portée. J'ai un fichier commun avec beaucoup de variables différentes. J'ai besoin du fichier commun dans mon script principal, mais je ne peux pas accéder aux variables; ils semblent être en dehors de sa portée. J'ai supposé qu'une déclaration our
surmonterait ce problème, mais cela ne semble pas fonctionner.Pourquoi mon script Perl ne peut-il pas voir les variables our() que j'ai définies dans un autre fichier?
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;
je reçois l'erreur:
Global symbol "$var1" requires explicit package name
Le symbole global, var1 $, nécessite un nom de package explicite. – jrockway
Lire http://perl.plover.com/FAQs/Namespaces.html –
Le point 1 de la programmation Perl efficace (ISBN: 0201419750, Joseph Hall et Randal Schwartz) s'intitule: Know Your Namespaces. C'est une excellente référence pour cela, et un excellent livre aussi. –