chomp与chop都是用于去除字符串变量尾部的字符,但它们有各自的区别。
chomp函数对变量起作用,而此变量含有字符串。如果字符串结尾有换行符,chomp可以去掉它。这基本上就是它能完成的所有功能,如下例:
$text="alineoftext\n "; #也可以由<STDIN>输入 chomp($text); #去掉换行符(\n)。
chomp($text=<STDIN>); #读入,但不含换行符 $text=<STDIN>; chomp($text);#同上,但用两步完成
chomp 是一个函数。作为一个函数,它有一个返回值,为移除的字符的个数。这个数字基本上没什么用:
$food=<STDIN>; $betty=chomp($food); #得到值 1
在编写Perl程序代码的时候,也许你会有时会用chop() 函数来去掉<>输入的换行符"\n",有时候使用chomp() 函数。其实上面的用法都可以达到预期的效果,但它们也有细微的差别。
chop()函数,只是去除最后一个字符。
chomp()函数,就要首先判断最后一个字符是不是为"\n",它才去除。
chop函数会砍掉字符串变量的最后一个字符,并返回砍掉的字符,chop函数不管字符串里是什么都会剪短它,而chomp函数则更有选择性一些。不能chop直接量,只能chop变量。
用法:
chop VARIABLE chop LIST chop
@lines=`cat myfile`; chop @lines;
$last_char = chop($var); $last_char = substr($var, -1, 1, ""); # 同上
#!/usr/bin/perl $string1 = "This is test"; $retval = chop( $string1 ); print " Choped String is : $string1\n"; print " Character removed : $retval\n";
Choped String is : This is tes Number of characters removed : t