2011-12-15 5 views
5

У меня есть функция, которую я хотел бы определить в двух разных сценариях Perl, но не нравится редактировать их. Есть ли способ, которым я могу include его (как в PHP) из внешнего файла?"include" -esque function for Perl

FUNC ФАЙЛ:

sub test { 

} 

ФАЙЛ 1:

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

ФАЙЛ 2:

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

Также: http://stackoverflow.com/questions/1712016/how-do-i-include-functions-from-another-file-in-my-perl-script – Alex

+0

@Alex, почему вы благодарны! – tekknolagi

ответ

6

Func.pm:

package Func; 

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

sub test { 
} 

1; 

File1.pl:

use Func; 

test(); 
+0

Что такое '1;' for? – tekknolagi

+0

Импортированные файлы должны возвращать истинное значение. – TLP

+0

@TLP Спасибо за отзыв – tekknolagi

9

Чтобы ответить на этот вопрос узко:

Да, вы можете включить файл с помощью функции require('filename').

Чтобы ответить на вопрос, как правило:

Perl имеет полный механизм для определения и экспорта функций через механизм пакета. Это described in perlmod. Вы действительно должны использовать этот механизм, поскольку вы можете в конечном итоге упаковать модуль в модуль CPAN и сделать его доступным для других или просто легко установить на другие системы самостоятельно.

+0

Ооо, аккуратно! Посмотрите. – tekknolagi