Perl中的特殊符號(hào)介紹
$_
俗稱perl的老地方,當(dāng)你的程序中未告知使用哪個(gè)參數(shù)或者變量時(shí),perl就會(huì)自動(dòng)使用$_中的值,比如
for(1..10){ print ; }
這里print沒(méi)有指定參數(shù),所以它就會(huì)使用$_,那$_里面是什么呢?每次循環(huán)$_的值都會(huì)變化,所以$_實(shí)際上就是1 .. 10這10個(gè)值,所以上面的代碼打印的結(jié)果就是12345678910
$!
當(dāng)且僅當(dāng)某個(gè)函數(shù)調(diào)用失敗時(shí)才會(huì)設(shè)置該變量,所以經(jīng)常這樣使用這個(gè)變量
open FILE,"<d:/code/zdd.txt" or die $! ;
$/
這是perl中的行分隔符,默認(rèn)是換行符,可以改變這個(gè)變量以便一次讀入整個(gè)文件,如下
sub test{ open FILE,"<d:/code/zdd.txt" or die $! ; my$olds= $/ ; local $/=undef ; my$slurp=<FILE> ; print$slurp,"\n" ; $/=$olds ; }
$`
正則表達(dá)式匹配變量,代表匹配位置之前的內(nèi)容
$&
正則表達(dá)式匹配變量,代表匹配的內(nèi)容
$'
正則表達(dá)式匹配變量,代表匹配位置之后的內(nèi)容
來(lái)看一個(gè)例子,解析xml文件,有如下xml文件,我想獲得Code節(jié)點(diǎn)的值
<?xml version='1.0' encoding='UTF-8'?>
<Code>200</Code>
用下面的perl代碼來(lái)解析
my$str="<Code>200</Code>" ; if($str=~/(?<=<Code>)(\d+)(?=<\/Code>)/){ print"string before matched: $`","\n" ; print"matched string: $&","\n" ; print"string after matched: $'","\n" ; }
運(yùn)行結(jié)果是
string before matched: <Code>
matched string: 200
string after matched: </Code>
其中$`對(duì)應(yīng)<Code>,$&對(duì)應(yīng)200,$'對(duì)應(yīng)</Code>
$|
控制對(duì)當(dāng)前選擇的輸出文件句柄的緩沖,例子待添加。
@_
傳給子程序的參數(shù)列表,通常一個(gè)子程序是這樣獲得傳給它的參數(shù)的。
sub add { my ($num1, $num2) = @_; return $num1 + $num2; }
如果子程序只有一個(gè)參數(shù),也可以用shift來(lái)獲取,此時(shí),shift相當(dāng)于shift @_
sub square { my $num = shift ; # same as my $num = shift @_ return $num * $num; }
perl常見(jiàn)符號(hào)
=> 鍵值對(duì),左鍵右值
-> 引用,相當(dāng)于java中的 【對(duì)象.方法名】中的點(diǎn)號(hào)
:: 表示調(diào)用類的一個(gè)方法
% 散列的標(biāo)志,定義一個(gè)鍵值對(duì)類型的
@ 數(shù)組的標(biāo)志
$ 標(biāo)量的標(biāo)志
=~ 匹配的標(biāo)志
!~ 不匹配的標(biāo)志
$! 根據(jù)上下文返回錯(cuò)誤號(hào)或者錯(cuò)誤串
相關(guān)文章
perl操作MongoDB報(bào)錯(cuò)undefined symbol: HeUTF8解決方法
這篇文章主要介紹了perl操作MongoDB報(bào)錯(cuò)undefined symbol: HeUTF8解決方法,需要的朋友可以參考下2014-10-10Windows10下安裝配置 perl 環(huán)境的詳細(xì)教程
Perl 最重要的特性是Perl內(nèi)部集成了正則表達(dá)式的功能,以及巨大的第三方代碼庫(kù)CPAN。這篇文章主要介紹了Windows10下安裝配置 perl 環(huán)境的詳細(xì)教程,需要的朋友可以參考下2020-12-12使用Perl創(chuàng)建指定編碼格式(如utf-8)文件的實(shí)現(xiàn)代碼
當(dāng)Perl讀入的源文件是Unicode的utf-8格式時(shí),在使用Perl處理并輸出到一個(gè)新文件以后,編碼格式會(huì)自動(dòng)發(fā)生變化2013-02-02Perl 文本文件的讀寫操作、文件的重命名和刪除、多個(gè)文本文件的合并實(shí)現(xiàn)代碼
Perl 文本文件的讀寫操作、文件的重命名和刪除、多個(gè)文本文件的合并實(shí)現(xiàn)代碼,需要的朋友可以參考下2013-02-02使用perl實(shí)現(xiàn)拆分?jǐn)?shù)據(jù)表(mysql)并遷移數(shù)據(jù)實(shí)例
這篇文章主要介紹了使用perl實(shí)現(xiàn)拆分?jǐn)?shù)據(jù)表(mysql)并遷移數(shù)據(jù)實(shí)例,本文提供了3個(gè)腳本,分別用于拆分?jǐn)?shù)據(jù)表、遷移數(shù)據(jù)、插入測(cè)試數(shù)據(jù),需要的朋友可以參考下2014-10-10在vim中添加perl注釋時(shí)無(wú)法對(duì)齊問(wèn)題的解決方法
在使用vim編輯perl腳本時(shí),每當(dāng)輸入#號(hào)時(shí),#號(hào)都會(huì)跑到行首問(wèn)題,需要的朋友可以參考下2013-02-02