Perl学习总结
Perl 教程
Perl 是 Practical Extraction and Report Language 的縮寫,可翻譯為 "實(shí)用報(bào)表提取語言"。
Perl 是高級(jí)、通用、直譯式、動(dòng)態(tài)的程序語言。
Perl 最初的設(shè)計(jì)者為拉里·沃爾(Larry Wall),于1987年12月18日發(fā)表。
Perl 借用了C、sed、awk、shell腳本以及很多其他編程語言的特性。
Perl 最重要的特性是Perl內(nèi)部集成了正則表達(dá)式的功能,以及巨大的第三方代碼庫CPAN。
誰適合閱讀本教程?
本教程適合想從零開始學(xué)習(xí) Perl 編程語言的開發(fā)人員。當(dāng)然本教程也會(huì)對(duì)一些模塊進(jìn)行深入,讓你更好的了解 Perl 的應(yīng)用。
學(xué)習(xí)本教程前你需要了解
在繼續(xù)本教程之前,你應(yīng)該了解一些基本的計(jì)算機(jī)編程術(shù)語。如果你學(xué)習(xí)過PHP,ASP等其他編程語言,將有助于你更快的了解 Perl 編程。
第一個(gè) Perl 程序
對(duì)于大多數(shù)程序語言,第一個(gè)入門編程代碼便是"Hello World!",以下代碼為使用 Perl 輸出"Hello World!":
實(shí)例
#!/usr/bin/perl?
print "Hello, World!\n";
========
Perl:執(zhí)行最常見的編程任務(wù)(1)
http://developer.51cto.com/art/201009/224638.htm文章將介紹Perl的基礎(chǔ)知識(shí),一旦您掌握了Perl的相關(guān)知識(shí),使用起來就會(huì)非常簡(jiǎn)單。在本文中,我們將首先介紹如何使用Perl執(zhí)行最常見的編程任務(wù)。
Perl是一種非常簡(jiǎn)單、應(yīng)用廣泛且反響很好的腳本語言。它可用于各種任務(wù)(例如,您可以使用它創(chuàng)建DOS批處理文件或C外殼腳本的等效文件),但在網(wǎng)絡(luò)開發(fā)環(huán)境中,它用于開發(fā)CGI腳本。
由于Perl是一種腳本語言,所以使用它的一個(gè)好處就是可以分發(fā)程序的源代碼。這就為您提供了學(xué)習(xí)Perl的機(jī)會(huì),您也可以下載和修改數(shù)千個(gè)Perl腳本,以供自己使用。Perl的缺點(diǎn)之一就是,多數(shù)的免費(fèi)代碼都難以理解。這使Perl自身成了一種神秘的語言類型!
本文假定您已經(jīng)知道如何編程(如果您了解C語言,這對(duì)您將非常簡(jiǎn)單)。一旦掌握了有關(guān)Perl的基礎(chǔ)知識(shí),使用起來就會(huì)非常簡(jiǎn)單。在本文中,我們將首先介紹如何使用Perl執(zhí)行最常見的編程任務(wù)。閱讀本文后,您將可以相對(duì)輕松地編寫自己的Perl腳本,還可以輕松地讀取其他人編寫的含義模糊的腳本,這將是一個(gè)好的開始。
要啟用Perl,您需要有Perl解釋程序。在任何裝有UNIX的計(jì)算機(jī)上,99.99%的都已安裝了Perl解釋程序。在裝有Windows或Mac計(jì)算機(jī)上,您需要下載最新的語言版本并將其安裝到計(jì)算機(jī)上。您可從網(wǎng)上輕松下載Perl,并且是免費(fèi)的。
接下來,請(qǐng)確保查看Perl附帶的DOCS目錄,其中會(huì)有類似用戶手冊(cè)的資料。如果您已加載了Perl,請(qǐng)確保已正確設(shè)置了路徑以包含Perl的可執(zhí)行文件。然后,打開文本編輯器并創(chuàng)建一個(gè)文本文件。在文件中,輸入以下行:
print "Hello World!n";?
將文件命名為“test1.pl”。在命令提示符下鍵入:
perl test1.plPerl?
將運(yùn)行并執(zhí)行文本文件中的代碼。您應(yīng)該會(huì)看到詞語“Hello World!”打印到標(biāo)準(zhǔn)輸出中。正如您所看到的,在Perl中創(chuàng)建和運(yùn)行程序都非常簡(jiǎn)單。(如果使用的是UNIX,您可以在第一行中輸入一段注釋,如#!/usr/bin/perl,那么以后您就不需要在命令行鍵入單詞“perl”了。)
print命令會(huì)將內(nèi)容打印到標(biāo)準(zhǔn)輸出中。符號(hào)n是換行符。如果您將測(cè)試程序修改成以下形式會(huì)更清楚(#表示一段注釋):
# Print on two lines ??
print "HellonWorld!n";?
請(qǐng)注意,打印命令知道它應(yīng)該將“n”解釋為換行符而不是文字字符這并不是由于打印命令擁有智能,而是因?yàn)槭褂昧穗p引號(hào)(在Perl中實(shí)際稱為引用)。如果您用單引號(hào)代替雙引號(hào),例如:
print 'HellonWorld!n';?
則不會(huì)對(duì)字符n進(jìn)行解釋,而是用文字代替。
還有反引號(hào)字符:`。一對(duì)反引號(hào)表示引號(hào)內(nèi)的字符應(yīng)被識(shí)別為一個(gè)操作系統(tǒng)命令,并且該命令與您輸入的命令一并執(zhí)行。如果您試圖將操作系統(tǒng)的命令行操作置于反引號(hào)內(nèi),則將執(zhí)行該命令。例如,在Windows NT系統(tǒng)中,您可以使用:
print 'cmd /c dir';?
========
Perl格式 - 書寫報(bào)表
http://www.yiibai.com/perl/perl_format.htmlPerl格式書寫報(bào)告編程教程,例子教程,參考手冊(cè)和代碼 - 如前所述Perl代表著實(shí)際提取和報(bào)告語言,我們將討論如何使用Perl來編寫報(bào)告。
如前所述Perl代表著實(shí)際提取和報(bào)告語言,我們將討論如何使用Perl來編寫報(bào)告。
Perl使用寫作模板,所謂的“格式”輸出報(bào)告。要使用格式的Perl特性,你必須:
定義格式
傳遞數(shù)據(jù)將被顯示在格式中
調(diào)用格式
定義格式
以下是語法來定義一個(gè)Perl的格式
? ? format FormatName =
? ? fieldline
? ? value_one, value_two, value_three
? ? fieldline
? ? value_one, value_two
? ? .
FormatName表示的格式的名稱。Fieldline是應(yīng)該被格式化的具體數(shù)據(jù)。線條表示值,將被輸入到的磁力線,與一個(gè)句點(diǎn)結(jié)束的格式。
Fieldline可以包含任何文本或fieldholders。Fieldholders保持空間的數(shù)據(jù)將置于在稍后的日期。fieldholder有一個(gè)格式:
@<<<<
fieldholder是左對(duì)齊,用5空格空間。知道有多少在該字段的空格,您必須自行計(jì)算@符號(hào)和<的大小。其它字段中持有包括:
@>>>> right-justified
? ?@|||| centered
? ?@####.## numeric field holder
? ?@* multiline field holder
一個(gè)例子的格式是:
? ?format EMPLOYEE =
? ?===================================
? ?@<<<<<<<<<<<<<<<<<<<<<< @<<?
? ?$name $age
? ?@#####.##
? ?$salary
? ?===================================
? ?.
在這個(gè)例子中$的名字將被寫為左對(duì)齊在22個(gè)字符的空格和年齡后,在兩個(gè)空格空間將被寫入。
調(diào)用格式寫入數(shù)據(jù)
為了調(diào)用此格式的聲明,我們將使用寫關(guān)鍵字:
write EMPLOYEE; #send to the output
問題是,格式的名稱通常是一個(gè)打開的文件句柄的名字,并寫語句將輸出發(fā)送到這個(gè)文件句柄。我們要發(fā)送的數(shù)據(jù)到stdout,我們必須聯(lián)合起來,并在輸出文件句柄的EMPLOYEE。首先,我們必須確保,STDOUT是我們的選擇的文件句柄,使用select()函數(shù)。
select(STDOUT);
然后,我們將通過設(shè)置新的格式名稱STDOUT與STDOUT關(guān)聯(lián)EMPLOYEE,使用特殊的變量$?。
$~ = "EMPLOYEE";
我們現(xiàn)在做的一個(gè)write()時(shí),數(shù)據(jù)將發(fā)送給STDOUT。請(qǐng)記住:如果你沒有STDOUT設(shè)置為默認(rèn)的文件句柄,你可以恢復(fù)到原來的文件句柄分配的返回值,選擇一個(gè)標(biāo)量值,使用選擇這個(gè)標(biāo)量變量的特殊變量后,被指定的格式命名,名稱相關(guān)聯(lián)STDOUT。
上面的例子會(huì)產(chǎn)生一個(gè)報(bào)告按以下格式:
Kirsten ? ? ? ? ? ? ?12
? ?Mohammad ? ? ? ? ? ? 35
? ?Suhi ? ? ? ? ? ? ? ? 15
? ?Namrat ? ? ? ? ? ? ? 10
定義報(bào)表表頭
一切都看起來很好。但是,如果你想在報(bào)告中添加一個(gè)頭。這頭將被打印在每個(gè)頁面的頂部。它也非常簡(jiǎn)單的做到這一點(diǎn)。除了自定義一個(gè)模板,你必須定義一個(gè)報(bào)頭,它具有相同的名稱,但附加_TOP關(guān)鍵字如下:
?format EMPLOYEE_TOP =
? ?------------------------
? ?Name ? ? ? ? ? ? ? ? Age
? ?------------------------
? ?.
? ?# by www.yiibai.com
現(xiàn)在,您的報(bào)告將看起來像:
------------------------
? ?Name ? ? ? ? ? ? ? ? Age
? ?------------------------
? ?Kirsten ? ? ? ? ? ? ?12
? ?Mohammad ? ? ? ? ? ? 35
? ?Suhi ? ? ? ? ? ? ? ? 15
? ?Namrat ? ? ? ? ? ? ? 10
在頁面上定義一個(gè)分頁的行數(shù)
如果您的報(bào)告采用超過一頁怎么辦?你有一個(gè)解決方案。使用$%報(bào)頭如下
format EMPLOYEE_TOP =
? ?------------------------
? ?Name ? ? ? ? ? ? ? ? Age ? Page @<
? ?------------------------ ? ? ? ?$%
? ?.
現(xiàn)在,您的輸出將類似于:
------------------------
? ?Name ? ? ? ? ? ? ? ? Age ? Page 1
? ?------------------------ ? ?
? ?Kirsten ? ? ? ? ? ? ?12
? ?Mohammad ? ? ? ? ? ? 35
? ?Suhi ? ? ? ? ? ? ? ? 15
? ?Namrat ? ? ? ? ? ? ? 10
您可以設(shè)置每頁的行數(shù)默認(rèn)情況下使用特殊的變量$=($ FORMAT_LINES_PER_PAGE)$=60
定義報(bào)表頁腳
剩下最后要做一件事是頁腳,與報(bào)頭非常相似,你可以定義一個(gè)頁腳,它會(huì)被寫入后的每一頁。在這里,你會(huì)使用_BOTTOM關(guān)鍵字,而不是_TOP。
? ?format EMPLOYEE_BOTTOM =
? ?End of Page @<
? ? ? ? ? ? ? ?$%
? ?. #by www.yiibai.com
這會(huì)給你下面的結(jié)果:
------------------------
? ?Name ? ? ? ? ? ? ? ? Age ? Page 1
? ?------------------------ ? ?
? ?Kirsten ? ? ? ? ? ? ?12
? ?Mohammad ? ? ? ? ? ? 35
? ?Suhi ? ? ? ? ? ? ? ? 15
? ?Namrat ? ? ? ? ? ? ? 10
? ?End of Page 1
對(duì)于一個(gè)完整的一套相關(guān)的格式化的變量,請(qǐng)參考 Perl特殊變量部分。
======== 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
- 上一篇: 动态CSS - LESS学习总结
- 下一篇: win32 调试 API 学习总结