2011-12-15 11 views
5

Ho una funzione che vorrei definire in due diversi script Perl, ma non mi piace doverli modificare entrambi. C'è un modo che posso include (come in PHP) da un file esterno?"include" -esque function per Perl

FUNC FILE:

sub test { 

} 

FILE 1:

include func_file; 
foo(); 
bar(); 
test(); 

FILE 2:

include func_file; 
blah(); 
test(); 
+0

anche: http://stackoverflow.com/questions/1712016/how-do-i-include-functions-from-another-file-in-my-perl-script – Alex

+0

@alex perché grazie! – tekknolagi

risposta

6

Func.pm:

package Func; 

use Exporter qw(import); 
our @EXPORT = qw(test); 

sub test { 
} 

1; 

File1.pl:

use Func; 

test(); 
+0

Qual è il '1;' per? – tekknolagi

+0

I file importati devono restituire un valore vero. – TLP

+0

@TLP Grazie per il suggerimento – tekknolagi

9

di rispondere alla domanda di poco:

Sì, è possibile includere un file utilizzando la funzione require('filename').

Per rispondere alla domanda generale:

Perl ha un meccanismo completo per la definizione e l'esportazione funzioni attraverso il suo meccanismo pacchetto. Questo è described in perlmod. Dovresti davvero usare questo meccanismo, dato che puoi eventualmente impacchettare il modulo in un modulo CPAN e renderlo disponibile per altri, o semplicemente semplice da installare su altri sistemi.

+0

Ooh, pulito! Dare un'occhiata. – tekknolagi

Problemi correlati