国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Perl > 正文

Perl中的特殊符號介紹

2020-06-04 20:33:12
字體:
供稿:網(wǎng)友

$_  

俗稱perl的老地方,當(dāng)你的程序中未告知使用哪個參數(shù)或者變量時(shí),perl就會自動使用$_中的值,比如

for(1..10){  print ;}

這里print沒有指定參數(shù),所以它就會使用$_,那$_里面是什么呢?每次循環(huán)$_的值都會變化,所以$_實(shí)際上就是1 .. 10這10個值,所以上面的代碼打印的結(jié)果就是12345678910

$!

當(dāng)且僅當(dāng)某個函數(shù)調(diào)用失敗時(shí)才會設(shè)置該變量,所以經(jīng)常這樣使用這個變量

open FILE,"<d:/code/zdd.txt" or die $! ;

$/

這是perl中的行分隔符,默認(rèn)是換行符,可以改變這個變量以便一次讀入整個文件,如下

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)容

來看一個例子,解析xml文件,有如下xml文件,我想獲得Code節(jié)點(diǎn)的值

<?xml version='1.0' encoding='UTF-8'?>
<Code>200</Code>
用下面的perl代碼來解析

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>

其中$`對應(yīng)<Code>,$&對應(yīng)200,$'對應(yīng)</Code>

$|

控制對當(dāng)前選擇的輸出文件句柄的緩沖,例子待添加。

@_

傳給子程序的參數(shù)列表,通常一個子程序是這樣獲得傳給它的參數(shù)的。

sub add {  my ($num1, $num2) = @_;  return $num1 + $num2;}

如果子程序只有一個參數(shù),也可以用shift來獲取,此時(shí),shift相當(dāng)于shift @_

sub square {  my $num = shift ; # same as my $num = shift @_  return $num * $num;}

perl常見符號

=> 鍵值對,左鍵右值

-> 引用,相當(dāng)于java中的 【對象.方法名】中的點(diǎn)號

:: 表示調(diào)用類的一個方法

% 散列的標(biāo)志,定義一個鍵值對類型的

@ 數(shù)組的標(biāo)志

$ 標(biāo)量的標(biāo)志

=~ 匹配的標(biāo)志

!~ 不匹配的標(biāo)志

$! 根據(jù)上下文返回錯誤號或者錯誤串

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 崇州市| 娱乐| 汕尾市| 育儿| 太仆寺旗| 横山县| 阿坝县| 武川县| 东乡县| 鞍山市| 义马市| 五家渠市| 宜兴市| 彭山县| 遂昌县| 宜宾市| 华亭县| 泰安市| 迭部县| 兴业县| 光山县| 虞城县| 德惠市| 铜山县| 永和县| 荆门市| 盱眙县| 壶关县| 翁源县| 宣恩县| 湘乡市| 平湖市| 沐川县| 阿拉善盟| 金华市| 浮山县| 安泽县| 洮南市| 阿坝县| 思茅市| 西贡区|