9.Perl の基礎9-1.文字列操作■ 文字列比較
Perl では、文字列用の比較演算子が用意されており、文字列を直接比較できます。
(C言語では、strcmp 関数などを使用した。)
if($a eq $b) # $a と $b が等しいなら
if($a ne $b) # $a と $b が等しくないなら if($a gt $b) # $a が $b より大きいなら if($a ge $b) # $a が $b 以上なら if($a lt $b) # $a が $b より小さいなら if($a le $b) # $a が $b 以下なら if($a =~ $b) # $a が $b を含んでいるなら if($a =~ /正規表現/) # $a が 正規表現で示されている文字列のパターンを含んでいるなら ■ 文字列操作関数
Perlでは文字列を配列変数ではなく、通常の変数に代入することは既に示した通りです。
perlでは文字列を操作するための様々な関数が用意されているので、いくつか紹介しておきます。
各関数の詳細な使用方法に関しては、他の解説サイトを参照してください。
split関数の使用例)
$a = "We love Protein!";
@b = split(/\s/, $a); print "@b\n"; ■ ハッシュ変数
配列は、箱の名前が 0 から始まる番号であり Perl が自動的に生成するのに対して、
ハッシュでは箱の名前(key)を自分でつけます。配列が @ から始まるのに対して、
ハッシュは、% から始まります。
%list = ('犬'=>'dog', '猫'=>'cat', '豚'=>'pig');
print "犬 は、$list{'犬'} です。\n"; print "猫は、$list{'猫'} です。\n"; print "豚は、$list{'豚'} です。\n";
犬は、dog です。
これと同じことを代入文で行うと、
猫は、cat です。 豚は、pig です。
$list{'犬'} = 'dog';
$list{'猫'} = 'cat'; $list{'豚'} = 'pig'; print "犬 は、$list{'犬'} です。\n"; print "猫は、$list{'猫'} です。\n"; print "豚は、$list{'豚'} です。\n"; ■ ハッシュ・配列操作関数
ハッシュにどのようなキー(箱の名前)が存在しているかわからない場合、次のようにキーを配列変数に抽出することができる。
@key = keys(%data);
また、foreach文と組み合わせることも可能である。
foreach $key ( keys %data )
{ print "$key $data{$key}\n"; } さらに、配列の中身を並べ替えてくれる sort 関数と組み合わせることも可能。
foreach $key ( sort keys %data )
{ print "$key $data{$key}\n"; }
【演習】
$str = "atcgggcaattcctag"; ハッシュ変数を用いて、アルファベットの個数を数えるプログラムを作ろう。 |