Al centro, l'estensione di file utilizzata non fa differenza su come perl
interpreta quei file.
Tuttavia, mettere i moduli in .pm
file seguendo una certa struttura di directory che segue il nome del pacchetto fornisce una comodità. Quindi, se si dispone di un modulo Example::Plot::FourD
e lo si inserisce in una directoryin un percorso nel proprio @INC
, quindi use
e require
farà la cosa giusta quando viene indicato il nome del pacchetto come in use Example::Plot::FourD
.
Il file deve restituire true come ultima istruzione per indicare l'esecuzione con successo di qualsiasi codice di inizializzazione, quindi è consuetudine terminare tale file con 1;
meno che non siate sicuri che restituisca vero il contrario. Ma è meglio mettere semplicemente lo 1;
, nel caso aggiungeste altre dichiarazioni.
Se EXPR
è un bareword, il require
assume un'estensione ".pm" e sostituisce '::' con '/' nel nome del file per voi, per rendere più facile il caricamento dei moduli standard. Questa forma di caricamento dei moduli non rischia di alterare il tuo spazio dei nomi.
Tutto use
fa è di capire il nome del file dal nome del pacchetto disponibile, require
in un blocco BEGIN
e richiamare import
sul pacchetto. Non c'è nulla che ti impedisca di non utilizzare use
ma di eseguire questi passaggi manualmente.
Ad esempio, qui sotto ho messo il pacchetto Example::Plot::FourD
in un file chiamato t.pl
, caricato in uno script in un file s.pl
.
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
Questo esempio dimostra che i file dei moduli non devono finire in 1
, qualsiasi valore reale farà.
fonte
2010-08-04 12:41:09
'1' non importa. Può essere '2', può essere' "foo" ', può essere' ["a", "lista"] '. Ciò che importa è che non è "0", o qualsiasi altra cosa che viene valutata come falsa, o "uso" fallirebbe. – Amadan
.pl è in realtà una libreria perl - gli script perl, come i programmi C oi programmi scritti in altre lingue, non hanno un finale, tranne che sui sistemi operativi che ne necessitano uno per functiopn, come Windows. –