perl中chomp的使用介紹(chop和chomp函數區別)_perl

來源:互聯網
上載者:User

例子:

複製代碼 代碼如下:

#!/bin/perl
print "Please input an string and a number by order!\n"; 
$the_string=<>; 
$the_numb=<>; 
print "The result is \n"; 
print "$the_string"x"$the_numb";

結果:
The result is  
my 
my 
my 
my 
my

這裡的問題便是沒有使用chomp引起的。

來看加入chomp的情況:

複製代碼 代碼如下:

#!/bin/perl
print "Please input an string and a number by order!\n"; 
chomp($the_string=<>); 
chomp($the_numb=<>); 
print "The result is \n"; 
print "$the_string"x"$the_numb";

結果:
The result is  
mymymymymy

如果字串結尾有分行符號,chomp 可以去掉它。這基本上就是它能完成的所有功能,如下例:
$text = “a line of text/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。

chop和chomp函數區別

chop函數負責刪除標量型標量的最後一個字元或數組中每個元素的最後一個字元,並返回修改後的值。chop一般用於刪除程式接收到的輸入行末尾的分行符號,這些輸入行可以來自STDIN、檔案或者命令置換結果。
chomp函數,負責刪除標量型變數中的最後一個字元,或者數組中每個字的最後一個字元,並保證只有該行末字元是分行符號時才進行刪除操作。它會返回刪除後的字元數目。使用chomp函數來代替chop,能避免刪除分行符號之外的其它字元。
例1:chop
#!/usr/bin/perl
$v = 'Flowers';
$r = chop($v);
print "$v (without $r)\n";
運行結果
[root@localhost per]# ./1-16.pl
Flower (without s)
例2:chomp
#!/usr/bin/perl
print "User name: ";
$name = < STDIN >;
chomp $name;
print "Your user name is : $name\n";
運行結果
[root@localhost per]# ./1-18.pl
User name: Bill
Your user name is : Bill

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.