Perl

馬六甲雞湯街


> 只要不會(huì)因?yàn)槟玫衾ㄌ?hào)而改變?cè)敢?,括?hào)就是可省略的。

不同語(yǔ)言的設(shè)計(jì)邏輯確實(shí)有差異,需要拋開(kāi)C的思維,打開(kāi)Perl的思路。

打開(kāi)警告

undef

狀態(tài)碼

退出值0代表正常,非零退出代表異常。

默認(rèn)變量

$!只能捕獲系統(tǒng)調(diào)用相關(guān)錯(cuò)誤。

環(huán)境變量

比如PATH

在程序開(kāi)始時(shí)候,%ENV會(huì)保留從父進(jìn)程繼承而來(lái)的設(shè)定值。修改該值會(huì)被新進(jìn)程繼承。但修改從父進(jìn)程繼承的環(huán)境變量并不能影響shell或者其他父進(jìn)程。

數(shù)組越界不奔潰(未初始化的為undef)

雙引號(hào)會(huì)把變量替換

單引號(hào)除了單引號(hào)和反斜線字符外,其他字符都代表它們自己( 表示一個(gè)反斜線和n)

可能splice看起來(lái)不起眼,但在其他語(yǔ)言中要實(shí)現(xiàn)相同功能并不輕松。許多人為了達(dá)到相同目的,使用各種復(fù)雜概念和技術(shù),比如鏈表什么的,但這無(wú)疑是把程序員的時(shí)間浪費(fèi)在低層次的數(shù)據(jù)處理上,既不合理也不高明。

數(shù)組和普通變量可以共用一個(gè)名字!所以取名可以參考前綴

@可以獲得整個(gè)數(shù)組

chomp函數(shù)可以去掉一行字符串的最后一個(gè)換行符(如果有的話)

foreach中的控制變量(item)在循環(huán)中并不是數(shù)組變量的拷貝,而是變量自身!因此在循環(huán)中修改了控制變量就會(huì)修改數(shù)組本身!同時(shí),控制變量作用域是僅限于foreach,與前面定義的不沖突。

sort是按字符在計(jì)算機(jī)內(nèi)部編碼順序排序的!所以如果要排序需要注意排序結(jié)果,比如要對(duì)數(shù)字排序,那么使用sort可能不對(duì)

上下文

標(biāo)量上下文和列表上下文。同一個(gè)表達(dá)式在不同的地方會(huì)有不同的意義。

比如

@people = sort @data

$number =42 + @data

一個(gè)是對(duì)data排序,一個(gè)是計(jì)算42+data這個(gè)數(shù)組的元素個(gè)數(shù)!

可以使用scalar強(qiáng)制指定標(biāo)量上下文

常量,空字符串

可以使用readonly來(lái)描述

多行字符串

如果有字符串要多行,應(yīng)該在每個(gè)換行符之后斷開(kāi),再使用“.”連接起來(lái)

如果內(nèi)容太多,可以用heredoc



qw

不要在qw操作符內(nèi)誤用逗號(hào),它會(huì)被當(dāng)做是字符串的一部分。Perl會(huì)用空格分割qw內(nèi)字串。



第十六章 進(jìn)程管理

可以使用system或者exec

system會(huì)創(chuàng)建子進(jìn)程,子進(jìn)程會(huì)在perl睡眠期間執(zhí)行(也可以創(chuàng)造后臺(tái)進(jìn)程)

exec會(huì)使Perl進(jìn)程自己去執(zhí)行任務(wù)。這類似子程序調(diào)用與"goto"的差別。

當(dāng)運(yùn)行到exec時(shí)候,Perl執(zhí)行對(duì)應(yīng)命令,此后就沒(méi)有Perl進(jìn)程了,這樣在命令結(jié)束后就沒(méi)有Perl進(jìn)程在等待??梢杂糜谑褂肞erl給對(duì)應(yīng)命令設(shè)置啟動(dòng)的環(huán)境變量。(學(xué)習(xí)Perl 276頁(yè))

一旦要執(zhí)行的命令啟動(dòng)后Perl便退出,后面的代碼也都無(wú)法運(yùn)行,但如果命令啟動(dòng)失敗,后續(xù)的錯(cuò)誤捕獲命令還是可以運(yùn)行的。

可以使用反引號(hào)``來(lái)代替單或雙引號(hào),用來(lái)捕捉命令的輸出。

使用system啟動(dòng)子進(jìn)程時(shí)候可以向里面?zhèn)鬟f參數(shù),如果需要傳入的參數(shù)是給命令用,那么就需要注意是否是要把參數(shù)內(nèi)插。

system 'ls $HOME'

注意使用單引號(hào)與雙引號(hào)是有差異的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 翻譯自 perl6maven.com exit,warn,die exit die Hello World Hel...
    焉知非魚閱讀 2,638評(píng)論 2 7
  • 標(biāo)題: Rakudo and NQP Internals子標(biāo)題: The guts tormented imple...
    焉知非魚閱讀 1,514評(píng)論 1 3
  • Perl 哲學(xué) Perl 是一種能“干實(shí)事”的語(yǔ)言。它靈活、寬容、可塑。在一名編程能者的手中,它可以 完成幾乎所有...
    firefive閱讀 1,508評(píng)論 1 11
  • 2009 有用的和有意思的循環(huán) 讓我們來(lái)看一個(gè)基本的例子. 這是一個(gè)最簡(jiǎn)單清晰的語(yǔ)法的例子.在這并沒(méi)有使用括號(hào)來(lái)包...
    焉知非魚閱讀 651評(píng)論 0 0
  • 我是不是該寫點(diǎn)啥,就說(shuō)現(xiàn)在的天氣吧,好熱啊,就這些
    昆_403e閱讀 202評(píng)論 0 0

友情鏈接更多精彩內(nèi)容