Что вы хотите сделать, это создать один или несколько модулей. Начнем с просмотра perlmod , особенно раздела Модули Perl .
Поскольку вы говорите, что пишете процедурный код, вам нужно будет экспортировать функции из ваших модулей. Традиционный способ сделать это - использовать Exporter (который поставляется с Perl), хотя Sub :: Exporter является более новым модулем CPAN, который допускает некоторые приятные вещи. (См. Также Sub :: Exporter :: Tutorial для введения в экспорт функций.)
Модули могут быть помещены в любой из каталогов, перечисленных в переменной @INC
. Попробуйте perl -V
, чтобы получить список. Вы также можете использовать lib для добавления каталогов во время выполнения. Одна хитрость заключается в том, чтобы использовать модуль FindBin , чтобы найти местоположение вашего скрипта, а затем добавить каталог, относящийся к этому:
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();
In 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!"}