Как вызвать функцию из определенного файла в perl? - PullRequest
0 голосов
/ 06 февраля 2020

Я хочу вызвать функцию в определенном файле, указав имя файла в качестве входного файла. Основной файл является аргументом вызова функции. Основной файл изменяется каждый раз, func1 остается постоянным.

mainfile
{
    func1()
    {
      .....
      .....
    }

    basefile::func1(mainfile.pm);
}

basefile.pm
{
    func1()
    {
       mainfile::func1();   
    }
}

1 Ответ

0 голосов
/ 06 февраля 2020

Похоже, вы ищете директиву package. Вызов package в

# basefile.pm
package basefile;
sub func1 { ... }

добавит подпрограмму func1 в пространство имен basefile и сделает ее доступной в любом другом пакете под символом basefile::func1.

Для вызова от basefile::func1 до mainfile::func1 должна быть подпрограмма с именем func1, определенная в пространстве имен mainfile. Вы можете использовать оператор package в своем скрипте mainfile

# mainfile.pl
package mainfile;
use basefile;
sub func1 { ... }

или объявить подпрограмму в определенном пространстве имен, используя полное имя подпрограммы

# mainfile.pl
use basefile;
sub mainfile::func1 { ... }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...