Perl 中的鑽石操作符

2021-09-05 13:04:49 字數 1123 閱讀 8975

經常會遇到需要讀取某些檔案的內容的時候,在 perl 中,可以用 開啟乙個輸入流,比如下面的**

while()

執行它,將會開啟乙個標準輸入流,按下回車後,就會列印輸入流中的資訊。

while 的作用是不斷的讀取標準輸入流中的資料並列印。在沒有確認之前,標準輸入流始終是開啟的,在按下回車之後,才會執行下一次的迴圈。

這裡稍微說一下乙個有意思的地方,假如把 while 換成 foreach,結果就會相當不同了。

foreach()

你會發現每次按完回車之後,它不會立即列印你想要的東西,當你按下ctrl + d的時候,它會把剛才輸入的所有資料全部列印出來。

這是因為 foreach 會預先載入目標的所有資料,因為標準輸入流始終沒關閉,所以,它會認為還有資料,迴圈體始終進不去,當按下ctrl + d的時候,才開始執行,它實際上只執行了一次迴圈體。

在 unix 系統中,有個特別好用的工具叫 cat,這個工具能窺探檔案的內容

cat helloworld
這句命令會將helloworld檔案中的內容輸出到標準輸出流中。

下面來用 perl 來實現乙個 cat (只是簡單的窺探檔案內容的功能)

print

<>

;

what ?? 就一行**,不是在逗我吧?

上面的<>叫做鑽石操作符,這是 perl 特有的東西,它逐行讀取命令列引數指定的檔案,然後返回讀取的內容,於是如果使用print <>,就能直接列印引數列表指定的檔案的內容了

perl cat.perl helloworld
這樣會列印helloworld的檔案內容,如果引數列表有不止乙個引數,會首先讀取第乙個引數,處理完畢後再讀取第二個。

如果想介入讀取過程的話,比如想在每行讀取過後追加乙個換行符,那麼可以用 while 進行處理

while

(<>

)

Perl 標量的操作符

今天來看看標量的操作符,標量可以分為兩類 一類是數字,另一類是字串。在perl中這兩類資料可以相互轉化,但是操作還是有區別的。下面先介紹數字型別的操作符 數字型別的運算操作符有一下幾種 加 減 乘 除 取反 不會的舉手,好沒有。下面講一些難的。第乙個是 取餘 嗯,會c語言的可以退場。這個操作符的使用...

perl高階排序, 操作符,飛船操作符

按照要求進行的排序 複製 如下 bin perl number qw 5 10 15 3 2 4 8 6 my descending s number 這裡 a 5,b 10,因為 a在前,perl得到的結果是小數在前,也就是公升序排列 print descending n 結果如下 f perl ...

perl檔案測試操作符

perl檔案測試操作符 操作符含義 r 檔案可以被有效的uid gid讀取。w 檔案可以被有效的uid gid寫入。x 檔案可以被有效的uid gid執行。o 檔案被有效uid所有 r 檔案可以被真實的uid gid讀取。w 檔案可以被真實的uid gid寫入。x 檔案可以被真實的uid gid執行...