Ответ 1
Что вы хотите сделать, это создать один или несколько модулей. Начните с просмотра perlmod, особенно в разделе Perl Modules.
Поскольку вы говорите, что вы пишете процедурный код, вам нужно будет экспортировать функции из ваших модулей. Традиционный способ сделать это - использовать Exporter (который поставляется с Perl), хотя Sub:: Exporter - это новый модуль CPAN, который позволяет создавать интересные вещи. (См. Также Sub:: Exporter:: Tutorial для введения в экспорт функций.)
Модули могут быть размещены в любой из каталогов, перечисленных в переменной @INC
. Попробуйте perl -V
, чтобы получить список. Вы также можете использовать lib для добавления каталогов во время выполнения. Один трюк заключается в том, чтобы использовать FindBin модуль, чтобы найти местоположение вашего script, а затем добавить каталог относительно этого:
use FindBin; # Suppose my script is /home/foo/bin/main.pl
use lib "$FindBin::Bin/lib"; # Add /home/foo/bin/lib to search path
Ваш образец кода, преобразованный в модуль:
В main.pl:
#! /usr/bin/perl
use strict;
use warnings;
use Foo;
say_hello();
В Foo.pm:
package Foo;
use strict;
use warnings;
use Exporter 'import';
our $VERSION = '1.00';
our @EXPORT = qw(say_hello);
sub say_hello {print "hello!"}