split と 正規表現による分割
http://oshiete1.goo.ne.jp/kotaeru.php3?q=964020
にて同じような質問をしたのですが、ご回答と自分での検証で食い違いが起きたので質問させていただきます。
splitを用いた分割と正規表現を用いた分割のどちらが速いかというものです。
#####test.txt###
...
<!--line-->
...
<!--line-->
....
################
というファイルを$lineという変数に入れ、
**********************************************
sub seiki {
my $a,$b,$c;
if($line=~ /(.*)<!--line-->\n(.*)<!--line-->\n(.*)/s){
$a=$1; $b=$2; $c=$3;
}
**********************************************
と
**********************************************
sub split {
my($a,$b,$c){split("<!--line-->\n",$line);}
}
**********************************************
をBenchmarkモジュールを用いて、速度比較をしてみたところ、splitの方が4倍程速い結果が出ました。実際に用いたtest.txtのサイズは10KBです。
前回質問したときのご回答では、正規表現のほうが早いというご意見をいただいたのですが、本当のところはどちらなのでしょうか