13,字串與排序

tonykorn97發表於2007-06-23

1,用index尋找子字串
$where = index($big,$small);
perl會在$big字串尋找$small字串首次出現的地方,並且返回一個整數代表第一個字串出現的位置。

可以利用rindex函式取得子字串最後出現的位置。
my $last_slash = rindex("/etc/passwd","/"); #值為4


2,使用substr操作子字串
$part = substr($string,$initial_position, $length);
它需要3個引數:一個字串,一個從零起算的初始值(類似於index的返回值)以及子字串的長度。它的返回值是子字串。

如果想要一直取到字串的結尾,那麼不論字串長短,只要省略第三個引數就行了
my $pebble = substr "Fred J. Flintstone",13; #得到“stone”

一個較大的字串的起始位置可以為負值,表示從自發串結尾開始倒數(意思是說,位置-1就是最後一個字元)
my $out = substr("some very long string",-3,2); # $out為"in"

index與substr可以合作無間。在下面的例子裡,我們會取出字元l的位置開頭的字串
my $long = "some very very long string";
my $right = substr($long,index($long,"l"));

假如字串是個變數,你就可以變動該字串被選取的部分
my $string = "Hello,World!";
substr($string,0,5) = "Goodbye"; # $string 變成"Goodbye,world"

還可以用繫結運算子(=~)只對字串的某部分進行操作。下面的例子只會處理字串的最後20個字元,將所有的fred替換成barney;
substr($string,-20) =~ s/fred/barney/g;


3, 用sprintf格式化資料
帶有貨幣數值的sprintf
my $money = sprintf "%.2f", 2.49997;

4,高階排序(還沒有看懂)
宇宙飛船運算子(<=>)
三路字串比較符:cmp

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245698/,如需轉載,請註明出處,否則將追究法律責任。

相關文章