$0
表示當前正在執行的perl指令碼名。有3種情況:
如果執行方式為perl x.pl
,則$0
的值為x.pl
而非perl命令本身
如果執行方式為./x.pl
,則$0
的值為./x.pl
如果執行的是perl -e
或perl -e
一行式perl程式,則$0
的值為-e
或-e
ar**陣列索引從0開始計算,索引0位從指令碼名(perl程式名)之後的引數開始計算
預設,這些命令列引數是perl程式的資料輸入源,也就是perl會依次將它們當作檔案進行讀取
引數是有序的,讀取的時候也是有序的
需要區分ar**變數和ar**陣列:
例如,test.plx的內容如下:
/usr/bin/perl
print '$ar**[0] ---> ',$ar**[0],"\n",
'$ar**[1] ---> ',$ar**[1],"\n",
'$ar**[2] ---> ',$ar**[2],"\n",
'$ar**[3] ---> ',$ar**[3],"\n",
'$ar**[4] ---> ',$ar**[4],"\n";
執行這個程式:
shell> ./test.plx -w a b c d
$ar**[0] ---> -w
$ar**[1] ---> a
$ar**[2] ---> b
$ar**[3] ---> c
$ar**[4] ---> d
因為是陣列,所以可以修改陣列,比如強制指定元素:
/usr/bin/perl
@ar**=qw(first second third);
print '$ar**[0] ---> ',$ar**[0],"\n",
'$ar**[1] ---> ',$ar**[1],"\n",
'$ar**[2] ---> ',$ar**[2],"\n";
shell> ./test.plx a b c d
$ar**[0] ---> first
$ar**[1] ---> second
$ar**[2] ---> third
例如,讀取2個檔案(a.log,b.log)的內容:
/usr/bin/perl
while(<>)
shell> ./test.plx a.log b.log
如果想讀取標準輸入,只需使用"-"作為檔案引數即可。
$ echo -e "abcd\nefg" | ./test.plx a.log - b.log
上面將按先後順序讀取a.log,標準輸入(管道左邊命令的輸出內容),b.log。 Perl 命令列引數
一 perl中的命令列引數 perl提供了乙個特殊的內建陣列 argv來存放使用者從命令列輸入的引數 功能跟c c 的命令列引數一樣,但是實現上不太一樣 perl中定義的命令列引數不包含perl命令和perl命令後面的perl程式檔名,即 不包含 perl 程式檔名 也就是說,陣列 argv中存放的...
perl中重要的幾個命令列引數
perl的命令列引數很多,但常用到的就那麼幾個 a e,n,p,i a 使用空白作為預設分隔符,等同下面 f split 例 perl ane print pop f file 等同下面 while e 加入一條指令碼執行命令 例 perl e print hello world n n 在指令碼中...
Perl命令列開關
0 規定記錄分隔符 a 與 n 或者 p 一起使用,負責開啟自動拆分模式,用於對空白字元進行隱式拆分,並將字段放入陣列 f 中,例如 date perl ane print f 0 n c 只檢查 perl 指令碼語法,而不執行指令碼 d 對指令碼開啟 perl 偵錯程式 d 設定 perl 的除錯...