2009-05-26 103 views
3

我已經用Perl編寫了一個庫,它包含一個特定的函數,它將有關服務器的信息作爲字符串返回。我可以直接從shell調用這個函數嗎?如何從shell腳本調用Perl函數?

我的老闆問:「你能暫時從shell直接調用它嗎?」因爲他說,我認爲我應該可以做到,但我該怎麼做呢?

+0

你試過`man perl`嗎? – Ismael 2009-05-26 01:39:14

+0

嗯,我不知道這是否真的是一個有價值的問題,如果沒有人修復措辭... ... – Mark 2009-05-26 01:54:25

回答

7

由於perl的命令行參數有點難以理解,我會將它封裝在一個簡單的perl腳本中,該腳本調用該函數。例如,創建一個腳本serverinfo其中包含:

#!/usr/bin/perl 

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

然後運行:

chmod u+x serverinfo 

這樣做的好處是,如果函數本身的變化腳本的輸出參數可以被糾正。像這樣的命令行腳本可以被認爲是一個API,當實現改變時它不應該改變。

10
perl -MServerlib=server_information -e 'print server_information()' 

是另一種方式來做到這一點,但只有當Serverlib出口server_information分。如果沒有,你需要做下面的代替:

perl -MServerlib -e 'print MServerlib::server_information()'