Wie funktioniert die Perl 'verwenden' - syntax arbeiten?

Beispielcode:

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();

Run:

$ perl test.pl
a = --
b = --
$

Was passiert, ist, dass die init('hello', 'world') Anruf zugeordnet ist m2.pm und initialisiert die Variablen ($a und $b) gibt.

Diese Art von Sinn macht, aber was ich nicht verstehe ist, warum diese Werte nicht verfügbar sind, in test.pl.

  • Ist es etwas grundlegend falsch, dass ich versuche, hier zu tun? Was ist der richtige Weg, um zwei Module mit gleichen namens Subroutinen und Variablen?

  • Wie genau funktioniert ein Perl - use Arbeit? Es würde helfen, wenn jemand könnte es dagegen mit C #include Richtlinie.

  • Warum brauche ich das, bitte siehe diese SO-thread.
  • Ist das dein vollständiger code? Sie haben, um Ihre Module zu definieren, die eine import routine oder Erben von Exporter. Wenn nicht, sind Sie nicht exportieren, werden die Unterprogramme in test.pl
  • ja, das ist alles.
  • Ok, siehe meine Antwort, warum es nicht funktioniert.
  • Da m1 und m2 sagen, Sie sind die ihrigen, und dass andere Bereiche sollten Ihre Handschuhe aus von Ihnen.
InformationsquelleAutor Lazer | 2010-11-10
Schreibe einen Kommentar