mi sono confuso con qualcosa durante l'importazione di un modulo, come:di Perl elenca
use POSIX;
&
use POSIX();
&
use POSIX qw(WNOHANG);
Qual è la differenza tra questi use
?
mi sono confuso con qualcosa durante l'importazione di un modulo, come:di Perl elenca
use POSIX;
&
use POSIX();
&
use POSIX qw(WNOHANG);
Qual è la differenza tra questi use
?
La maggior parte dei moduli utilizza il modulo Exporter
per esporre funzioni/variabili/costanti nello spazio dei nomi del callee.
use POSIX;
Questo sarà solo importare tutti i simboli da POSIX di @EXPORT
nel namespace del modulo di chiamata.
use POSIX();
Questo non importare alcun simbolo nel namespace chiamata. Ha, tuttavia caricare il modulo, il che significa che è possibile richiamare le funzioni come POSIX::strftime(...)
, ecc
use POSIX(WNOHANG)
Questo importerà solo il simbolo WNOHANG
al namespace del modulo di chiamata.
Se non si ha familiarità con gli array @EXPORT
e @EXPORT_OK
, si consiglia di consultare la documentazione di Exporter. L'utilizzo di Exporter
è il metodo standard in Perl per esportare i simboli da un modulo nello spazio dei nomi del modulo (lo spazio dei nomi chiamante). POSIX
lo usa pure.
Probabilmente vale anche la pena ricordare che i moduli progettati con un'interfaccia orientata agli oggetti, in genere non richiedono l'importazione di simboli.