Примерен код:
m1.pm
my $a;
my $b;
sub init {
$a = shift;
$b = shift;
}
sub printab {
print "a = -$a-\n";
print "b = -$b-\n";
}
1;
m2.pm
my $a;
my $b;
sub init {
$a = shift;
$b = shift;
}
1;
test.pl
use strict;
use warnings;
use m1;
use m2;
init('hello', 'world');
printab();
тичам:
$ perl test.pl
a = --
b = --
$
Това, което се случва е, че извикването init('hello', 'world')
се преобразува в m2.pm
и инициализира променливите ($a
и $b
) там.
Този вид има смисъл, но това, което не разбирам, е защо тези стойности не са налични в test.pl
.
Има ли нещо фундаментално грешно, което се опитвам да направя тук? Кой е правилният начин за използване на два модула с едноименни подпрограми и променливи?
Как точно работи Perl
use
? Ще помогне, ако някой може да го контрастира с директивата#include
на C.
import
рутина или наследява отExporter
. Ако не, вие не експортирате подпрограмите вtest.pl
- person Eric Strom   schedule 10.11.2010