[perl] join() vs コンマ演算子
perl で、文字列の結合には、join 関数を使うという方法と、コンマ演算子を使うという2つの方法があります。
オライリーのプログラミング Perl では、
実際はどうなのか調べるために、
すると、いくら結合文字列を増やしても join 関数の方が遅かったのです!単純に考えれば、join 関数は結合する配列の間に文字をいれるという関数なので、コンマ演算子より複雑な手続きをふむことになります。もしかすると、Perl のバージョンアップが進むにつれコンマ演算子の最適化が進んだのかもしれません。
オライリーのプログラミング Perl では、
$a . $bは
join("", $a, $b)に書き換えられるので、コンマ演算子を連続して使うと、非効率的であると書いていました。
実際はどうなのか調べるために、
use Benchmark;で、確かめてみました。
すると、いくら結合文字列を増やしても join 関数の方が遅かったのです!単純に考えれば、join 関数は結合する配列の間に文字をいれるという関数なので、コンマ演算子より複雑な手続きをふむことになります。もしかすると、Perl のバージョンアップが進むにつれコンマ演算子の最適化が進んだのかもしれません。
Comments