Как я могу вызвать функцию Perl из сценария оболочки? - PullRequest
4 голосов
/ 26 мая 2009

Я написал в Perl библиотеку, которая содержит определенную функцию, которая возвращает информацию о сервере в виде строки символов. Можно ли вызвать эту функцию напрямую из оболочки?

Мой босс спрашивает: «Можете ли вы в данный момент вызывать его непосредственно из раковины?» Поскольку он сказал это, я думаю, что я смогу это сделать, но как мне это сделать?

Ответы [ 2 ]

10 голосов
/ 26 мая 2009
perl -MServerlib=server_information -e 'print server_information()'

Это еще один способ сделать это, но только если Serverlib экспортирует подпрограмму server_information. Если этого не произойдет, вам нужно будет сделать следующее:

perl -MServerlib -e 'print MServerlib::server_information()'
7 голосов
/ 26 мая 2009

Поскольку аргументы командной строки perl немного непостижимы, я бы обернул их в более простой сценарий perl, который вызывает функцию. Например, создайте скрипт serverinfo, который содержит:

#!/usr/bin/perl

require 'library.pl';
say library::getServerInformation();

затем запустите:

chmod u+x serverinfo

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

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