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

首頁 > 編程 > Perl > 正文

perl中的字符串操作函數(shù)chomp與chop介紹

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

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

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

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

#同上,但用兩步完成

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

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

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

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

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 定边县| 乌兰县| 光山县| 陵川县| 崇义县| 荔波县| 伊宁县| 抚远县| 松原市| 乐亭县| 利辛县| 凤山市| 高台县| 镇巴县| 六枝特区| 祁门县| 北宁市| 白城市| 广元市| 洞头县| 正宁县| 龙井市| 绥德县| 乌鲁木齐县| 马关县| 额敏县| 元朗区| 岢岚县| 独山县| 建湖县| 大连市| 宁安市| 宿松县| 报价| 沙河市| 望谟县| 菏泽市| 香格里拉县| 洛扎县| 勐海县| 潢川县|