2011-12-15 12 views
5

Mam funkcję, którą chciałbym zdefiniować w dwóch różnych skryptach Perla, ale nie lubię konieczności edycji obu. Czy istnieje sposób, w jaki mogę to zrobić (jak w PHP) z zewnętrznego pliku?Funkcja "include" dla Perla

FUNC PLIK:

sub test { 

} 

PLIK 1:

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

pliku 2:

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

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

+0

@Alex, dlaczego dziękuję! – tekknolagi

Odpowiedz

6

Func.pm:

package Func; 

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

sub test { 
} 

1; 

File1.pl:

use Func; 

test(); 
+0

Do czego służy '1;'? – tekknolagi

+0

Zaimportowane pliki muszą zwracać wartość true. – TLP

+0

@TLP Dziękujemy za podpowiedź – tekknolagi

9

Aby odpowiedzieć na pytanie wąsko:

Tak, można dołączyć plik za pomocą funkcji require('filename').

Aby odpowiedzieć na pytanie, na ogół:

Perl posiada kompletny mechanizm definiowania i eksportowania funkcji poprzez mechanizm pakietu. To jest described in perlmod. Powinieneś naprawdę użyć tego mechanizmu, ponieważ możesz ostatecznie spakować moduł do modułu CPAN i udostępnić go innym, lub po prostu łatwo zainstalować w innych systemach.

+0

Ooh, schludny! Przyjrzy się. – tekknolagi