【ningoo】編寫Perl模組
這兩天在用Perl編寫一些監控指令碼,其實寫程式碼也是一件挺有意思的事情,就是挺廢時間的。而且,由於語法不太熟,基本想到一個東西都要先Google一下看怎麼實現。Perl的語法相對來說有點晦澀,主要是一些內建變數和函式處理得相當精巧,而過於精緻的東西理解起來就有點費力。相對於Shell,Perl在很多方面更加強大高效,比如Hash(關聯陣列)就非常好用,如果要將不同主機發出來的告警資訊傳送到不同的責任人,在shell中要做非常多的if或者case判斷,修改起來也非常費力,而使用關聯陣列,則可以輕鬆實現該功能,程式碼簡潔,配置方便,一個字,爽。
Perl支援以模組對程式碼進行封裝。著名的CPAN上就有非常多好用的Module,可以極大的減輕開發量。一個簡單的模組:
package NinGoo;
require Exporter;
use strict;
use warnings;
our @ISA = qw(Exporter);
our @EXPORT = qw(fun_public); #要輸出給外部呼叫的函式或者變數,以空格分隔
our @version = 1.0;
sub func_private{
print "This is a private function";
}
sub func_public{
print "Hello,world\n";
func_private();
}
1;
__END__
require Exporter;
use strict;
use warnings;
our @ISA = qw(Exporter);
our @EXPORT = qw(fun_public); #要輸出給外部呼叫的函式或者變數,以空格分隔
our @version = 1.0;
sub func_private{
print "This is a private function";
}
sub func_public{
print "Hello,world\n";
func_private();
}
1;
__END__
模組的檔名一般以.pm做字尾,名字和package相同,也就是上面這個Module的名字為NinGoo.pm。然後在普通的.指令碼中呼叫:
#!/usr/bin/perl -w
# creator: NinGoo
# function: test perl module
BEGIN {
push (@INC,'/home/module');
}
use strict;
use NinGoo;
func_public();
# creator: NinGoo
# function: test perl module
BEGIN {
push (@INC,'/home/module');
}
use strict;
use NinGoo;
func_public();
O’Relly出版了一系列Perl的圖書,比較著名的大駱駝《Programming Perl》在這裡有一個線上中文版本的,可以看看。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1384/viewspace-277796/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【NinGoo】Redhat上安裝Perl DBD::mysql模組GoRedhatMySql
- 使用Perl和WWW::Mechanize庫編寫
- 如何編寫一個Perl爬蟲程式爬蟲
- 編寫Node原生模組
- perl Statistics::Descriptive Perl 的統計模組
- 【NinGoo】用Perl的hash陣列實現個性化監控Go陣列
- 如何編寫python模組Python
- 使用typescript開發angular模組(編寫模組)TypeScriptAngular
- Perl 模組 Hash::Merge
- Perl的包和模組
- Perl模組之Tie::File
- perl cpan 模組安裝
- NingOOGo
- 使用CPAN安裝Perl模組
- 編寫你自己的Python模組Python
- Nginx通過內建的Perl模組執行Perl程式Nginx
- perl 編譯問題!編譯
- perl 讀寫檔案
- perl的包(package)和模組(PM)Package
- Perl5的包和模組
- 測試mod_perl模組(轉)
- 比較perl模組的版本(轉)
- 如何編寫型別安全的CSS模組型別CSS
- NinGoo's PhotoGo
- Ningoo的本子Go
- nginx 編寫簡單HTTP模組以及nginx http handler的hello world示例編寫NginxHTTP
- 寫的一個perl程式
- Perl 多執行緒模組 Parallel::ForkManager執行緒Parallel
- drozer模組的編寫及模組動態載入問題研究
- 蜻蜓安全編寫外掛模組 webcrack 實踐Web
- kernel 4.4.12 外部模組Makefile 指令碼編寫指令碼
- Perl讀寫檔案&字串操作字串
- Python turtle 模組可以編寫遊戲,是真的嗎?Python遊戲
- Perl網路程式設計的10個模組程式設計
- Perl的一些重要模組使用介紹
- Perl IO:隨機讀寫檔案隨機
- Android硬體抽象層(HAL)模組編寫規範Android抽象
- Android的硬體抽象層模組編寫規範Android抽象