Доступ к подпрограмме perl из другого сценария perl - PullRequest
4 голосов
/ 27 мая 2011

У меня был 1 скрипт на perl, в котором мы пишем пару подпрограмм. Пример:

# Try_1.pl

main();

sub main{
---
---
 check();
}

check {
--
--}

Теперь я написал другой скрипт Try_2.pl, в котором я хочу вызвать функцию проверки скрипта perl Try_1.pl.

Ответы [ 4 ]

7 голосов
/ 27 мая 2011

Звучит так, будто вы хотите создать модуль.Try_1.pm ( Edit: extension note) должен иметь следующую форму:

package Try_1;
use base 'Exporter';
our @EXPORT = qw(check);

sub check {
}

1;

А затем Try_2.pl должен получить этот код:

use Try_1 qw(check);

Это то, что вы ищете?

5 голосов
/ 27 мая 2011

Если вы не используете модули (расширение .pm), а вместо этого используете библиотеки (расширение .pl):

require 'Try_1.pl';
check();

Убедитесь, что оба файла Try_1.pl и Try_2.pl находятся втот же каталог.

1 голос
/ 25 июня 2013

Вам может понадобиться

test1.pl:

use Routines;
{    
    my $hello = "hello123";
    hello( $hello );    
    # ...
}

test2.pl:

package Routines;
sub hello 
{
    my $hello = shift;
    print "$hello\n";
}
1;
0 голосов
/ 26 сентября 2014

"run" ответ проверенной работы, но нужно вызвать как "Try_1 :: check ()". В противном случае выведите ошибку «Неопределенная подпрограмма & main :: check ()».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...