Im Kern macht die Dateierweiterung, die Sie verwenden, keinen Unterschied, wie perl
interpretiert diese Dateien.
Das Einfügen von Modulen in .pm
Dateien, die einer bestimmten Verzeichnisstruktur folgen, die dem Paketnamen folgt, bietet jedoch einen praktischen Vorteil. Also, wenn Sie ein Modul haben Example::Plot::FourD
und Sie es in einem Verzeichnis Example/Plot/FourD.pm
in einem Pfad in Ihrem setzen, dann use
und require
werden das richtige tun, wenn den Paketnamen wie in use Example::Plot::FourD
gegeben.
Die Datei muss als letzte Anweisung return true erfolgreiche Ausführung eines beliebigen Initialisierungscode, um anzuzeigen, so ist es üblich, mit 1;
eine solche Datei zu beenden, wenn Sie sicher sind, dass es auch anders wahr zurückkehren werde. Aber es ist besser, nur die 1;
zu setzen, falls Sie weitere Anweisungen hinzufügen.
Wenn EXPR
ein Bareword ist, nimmt die require
eine Erweiterung ".pm" an und ersetzt "::" durch "/" im Dateinamen, um das Laden von Standardmodulen zu erleichtern. Durch diese Form des Ladens von Modulen besteht keine Gefahr, dass Ihr Namespace geändert wird.
Alle use
tut, ist der Dateiname aus dem Paketnamen zur Verfügung gestellt, um herauszufinden, require
es in einem BEGIN
Block und rufen import
auf der Verpackung. Nichts hindert Sie daran, use
nicht zu verwenden, sondern diese Schritte manuell durchzuführen.
Zum Beispiel habe ich das Example::Plot::FourD
Paket in eine Datei namens t.pl
, in ein Skript in der Datei s.pl
geladen.
C:\Temp> cat t.pl
package Example::Plot::FourD;
use strict; use warnings;
sub new { bless {} => shift }
sub something { print "something\n" }
"Example::Plot::FourD"
C:\Temp> cat s.pl
#!/usr/bin/perl
use strict; use warnings;
BEGIN {
require 't.pl';
}
my $p = Example::Plot::FourD->new;
$p->something;
C:\Temp> s
something
Dieses Beispiel zeigt, dass Moduldateien in 1
zu Ende haben zu einem wahren Wert nicht, tun wird.
'1' spielt keine Rolle. Es kann '2' sein, es kann' 'foo'' sein, es kann' ["a", "list"] 'sein. Wichtig ist, dass es nicht "0" ist, oder irgendetwas anderes, das als falsch bewertet wird, oder "verwenden" würde fehlschlagen. – Amadan
.pl ist eigentlich eine Perl-Bibliothek - Perl-Skripte, wie C-Programme oder Programme in anderen Sprachen geschrieben, haben keine Endung, außer auf Betriebssystemen, die eine Funktion benötigen, wie Windows. –