Как я могу разделить код Perl на несколько файлов?

мои сценарии становятся слишком длинными. Как разбить мой код (процедурные подразделы) на несколько файлов Perl и сказать интерпретатору, чтобы понять их?

вроде как:

# -> main.pl

#include "foo.pl"
say_hello();

и:

# -> foo.pl
sub say_hello {print "hello!"}

3 ответов


что вы хотите сделать, это создать один или несколько модулей. Начните с просмотра perlmod, особенно Perl модули в разделе.

поскольку вы говорите, что пишете процедурный код, вы захотите экспортировать функции из своих модулей. Традиционный способ сделать это-использовать экспортер (который поставляется с Perl), хотя Sub:: Экспортер это новый модуль CPAN, который позволяет некоторые приятные вещи. (См. также Sub::Экспортер:: Учебник для введения в функции экспорта.)

модули могут быть размещены в любом из каталогов, перечисленных в @INC переменной. Попробуй!--4--> чтобы получить список. Вы также можете использовать 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();

В Foo.ПМ:

package Foo;

use strict;
use warnings;
use Exporter 'import';
our $VERSION = '1.00';
our @EXPORT  = qw(say_hello);

sub say_hello {print "hello!"}

Я думаю, что вы можете искать do? http://perldoc.perl.org/functions/do.html


поместите его в ту же папку, что и ваш класс, и добавьте use ClassName в верхней части вызывающего файла.

проверьте на Perl, ООП учебник.