文字列処理関数
perlでは文字列の一部を切り出すときにはsubstr関数を使うようで、
例えば'Good morning'という文字列の最初の4文字を得るときは
my $s = substr('Good morning', 0, 4); print $s;
とすればGoodと返される。
pythonで同じ処理をするにはリストの要素を取り出すときと同じ要領で、
s = "Good morning"[0:4] print s
とすれば良いみたい。
perlで次のようにsubstr関数に与える最後の引数を省略すると、
my $s = substr('Good morning', 5); print s
5番目の文字以降全部のmorningが返される。
pythonでも
s = "Good morning"[5:] print s
とすれば同じ結果が得られる。
perlで文字列中の特定の文字列の位置を調べるには関数indexを使うようで、
print index('Good morning', 'ing'), "\n";
とすれば9と返される。
pythonでは文字列メソッドを使って、
"Good morning".index("ing")
または
"Good morning".find("ing")
とすれば良いみたい。
この例ではindexメソッドでも、findメソッドでも同じ結果が得られるけど
両者はイコールと考えてよいのだろうか?
perlでは
$str =~ s/morning/evening/;
という文を使って変数 $str内の'morning'を'evening'に置換することができるようで、
my $str = 'Good morning'; $str =~ s/morning/evening/; print "\$str = $str\n";
とすれば
$str = Good evening
と出力される。
pythonではreplaceメソッドを使って、
str = "Good morning" str = str.replace("morning", "evening") print "str = %s" %str
とすれば
str = Good evening
と出力できる。