![]() |
![]() |
TOP > Perl > 文字列処理とソート |
![]() |
![]() |
index関数
一致する箇所のインデックスを調べる。見つからなかった時は-1を返す
(書式) 見つかった位置 = index "検索対象文字列", "検索文字列", [検索開始位置];
index関数の例
$str = "abcdefg"; $pat = "cde"; $ind = index $str, $pat; rindex関数
最後に見つかった位置を返す。
(書式) 見つかった位置 = rindex "検索対象文字列", "検索文字列", [返す最大の値];
ソートサブルーチン
あるリストのソートをする時、自分で何の順番に並べるかをサブルーチンで定義する。
この時perl内で比較対象値(2つの値)は自動的にサブルーチン内の変数$a、$bを用意してくれるので、何の順に並ばせるのかのみをコーディングすればよい。
ソートサブルーチンの例
sub by_numbers { #昇順に並べる #$aが$bよりも先に現れるなら-1を返し、$bの方が先に現れるなら1を返す if ($a < $b) { -1 } elsif ($a > $b) { 1 } else { 0 }; } @array = (3, 4, 7, 1, 5, 9, 6); @result = sort by_numbers @array; print @array; #上記の条件式にはショートカットが用意されている。(スペースシップ演算子) #サブルーチンの書き換え sub by_numbers { #昇順 $a <=> $b; #降順 #$b <=> $a; } #上記のソートはインラインを使い、更に短く書く事ができる。 @result = sort { $a <=> $b } @array; |
![]() |
![]() |
Copyright 2007 ためになるホームページ All Rights Reserved. |