perl中關於字串的一些函數

來源:互聯網
上載者:User

尋找子串:

index()和 rindex()

這兩個函數用來在字串中尋找字串。rindex功能同index相同,只不過就是從後面開始找。
主要有兩種用法,index($string,$subString);
index($string,$subString,$skip);

$skip參數表示跳過多少字元,用於指定開始位置,對rindex()函數來說是從字串最後開始計算的。

substr()

參數:substr($string,$start,$length);

這個函數在用法上和c++的有點類似,不過就是這裡的start位置可以為負數,這是個比較好的特性。負數表示從字串最後開始計數。

而且可以對該函數的結果賦值,這樣將修改在字串中的相應子串。也是一個比較好的功能,有點類似replace的功能。

sprintf();

用來格式化一個字串,用法和C中的sprintf是一樣的。

關於排序:

sort函數預設是按照ASCII碼順序排序的,當我們在對一堆數字排序的時候,我們並不想按照ASCII碼順序排序,這是我們可以定製自己的定序。

  1. sub by_number {
  2.   if ($a < $b) {
  3.     return -1;
  4.   } elsif ($a == $b) {
  5.     return 0;
  6.   } elsif ($a > $b) {
  7.     return 1;
  8.   }
  9. }

則我們可以這樣使用

@sortResut = sort by_number @nums;則可以得到正確的結果。

對上面這種-1,0,1的關係,可以使用更簡單的寫法,

  1. sub by_number {
  2.   $a <=> $b;
  3. }

當然也不一定要定義一個函數,當自己的定序比較簡單時,可以直接在sort函數後面寫上自己的規則

  1. @sortResult = sort { $a <=> $b } @nums;

對比較字串可以使用cmp

  1. sort { $a cmp $b} @nums;

定序的靈活制定非常方便,這如果c++中傳遞的函數的指標,用來回呼函數。

先寫到這裡,未完待續;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.