a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Perl > 正文

perl中的字符串操作函數chomp與chop介紹

2020-06-04 20:32:33
字體:
來源:轉載
供稿:網友

chomp與chop都是用于去除字符串變量尾部的字符,但它們有各自的區別。

chomp函數對變量起作用,而此變量含有字符串。如果字符串結尾有換行符,chomp可以去掉它。這基本上就是它能完成的所有功能,如下例:
代碼如下:
$text="alineoftext/n      "; #也可以由<STDIN>輸入
chomp($text);    #去掉換行符(/n)。

它非常有用,基本上你的每一個程序都會用到它。如你將知道,這是將字符串末尾換行符去掉的最好方法。基于 Perl 中的一條基本原則:在需要使用變量的地方,可以使用賦值表達式來代替。我們有更簡單的使用 chomp 的方法。Perl 首先做賦值運算,再使用這個變量。因此使用 chomp 的最常用方法是:
代碼如下:
chomp($text=<STDIN>);    #讀入,但不含換行符
$text=<STDIN>;
chomp($text);

#同上,但用兩步完成

第一眼見到時,第一種組合的方法看起來復雜些。如果把上述其看成兩步操作,讀一行再  chomp,那寫成兩個語句的方法看起來自然些。如果將其看作一個操作,讀入一行但不包括換行符,那寫成一個語句的方法更恰當。由于絕大多數 Perl 程序員使用第一種寫法,你也應該使用它。

chomp 是一個函數。作為一個函數,它有一個返回值,為移除的字符的個數。這個數字基本上沒什么用:
代碼如下:
$food=<STDIN>;
$betty=chomp($food); #得到值 1

如上,在使用 chomp 時,可以使用或不使用括號()。這又是 Perl 中的一條通用規則:除非移除它們時含義會變,否則括號是可以省略的。如果結尾有兩個或兩個以上的換行符,chomp 僅去掉一個。如果沒有,那什么也不做,返回 0。這種情況在一次讀入一行時不會發生,但使用了輸入分隔符(input  separator)($/)(其不為換行符(/n)),read 函數,或者將一些字符串結合起來就有可能發生。

在編寫Perl程序代碼的時候,也許你會有時會用chop() 函數來去掉<>輸入的換行符"/n",有時候使用chomp() 函數。其實上面的用法都可以達到預期的效果,但它們也有細微的差別。
 
chop()函數,只是去除最后一個字符。
chomp()函數,就要首先判斷最后一個字符是不是為"/n",它才去除。

chop函數會砍掉字符串變量的最后一個字符,并返回砍掉的字符,chop函數不管字符串里是什么都會剪短它,而chomp函數則更有選擇性一些。不能chop直接量,只能chop變量。
用法:
代碼如下:
chop VARIABLE
chop LIST
chop

例子:
如果chop一列LIST變量,那么列表中的每個字符串都會被剪短:
代碼如下:
@lines=`cat myfile`;
chop @lines;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久国产香蕉视频 | 中字一区 | 有码一区 | 欧美精品亚洲 | 亚洲一区二区三区四区在线观看 | 国产精品夜夜春夜夜爽久久电影 | 久久国产精品99久久久久久牛牛 | 亚洲日韩欧美一区二区在线 | 中文字幕一二三区 | 亚洲视频中文字幕 | 在线播放三级 | 欧美1区2区3区 | 中文字幕亚洲自拍 | a∨在线观看 | 中文字幕av一区 | 99re视频| 欧美 日韩 国产 一区 | 亚洲欧洲一区二区三区 | 精品一区免费 | 国产成人在线网站 | 97国产超碰 | 亚洲韩国精品 | 亚洲伊人久久综合 | 国产 日韩 欧美 制服 另类 | 亚洲精品国品乱码久久久久 | 国产精品一区二区三区网站 | 日韩欧美一区二区三区久久婷婷 | 亚洲免费av片 | 欧美乱淫| 国产欧美日本 | www.99精品| 欧美精品一区二区在线播放 | 成 人 a v天堂 | 精品国产一区二区在线 | 碰视频| 欧美一区不卡 | 有码在线 | 久久成人一区 | 精品国产乱码久久久久久蜜柚 | 在线91| 日韩精品免费 |