Когда вы используете `command`
в Perl, результатом является стандартный вывод вызываемой команды. Это похоже на синтаксис, аналогичный оболочке.
Учитывая, что 'def.pl' является программой на perl, вы можете запустить ее непосредственно из abc.pl, используя 'require'. Однако 'def.pl' должен быть допустимой программой на Perl. Выполнение return $ xy за пределами функции приведет к появлению сообщения об ошибке: Невозможно вернуться за пределы подпрограммы в строке 1.
Рассмотреть возможность создания функции в def.pl, которая возвращает значение $ xy. ,Альтернативой, которая не является идеальной, является использование global.
# abc.pl
require 'def.pl' ;
my $a = xy() ;
print "here a is $a";
# def.pl
sub xy {
my $xy = "..." ;
return $xy ;
}
В качестве альтернативы, вы можете сделать def.pl «печатать» результат, позволяя получить «результат» из def. pl скрипт.
# def.pl
warn "in def file";
my $xy = "hello world!";
print $xy;