この実装だとものすごくの遅いです。 要素数が、少ない場合はまぁそんなに時間がかからないかなーという感じでしょうが、1000行ぐらいのCSSファイルを処理したらいつまでも終わらないでしょう。 問題の個所は以下の場所。 sub check_order { my $line = shift; my $order = 0; for (my $i = 0; $i <= $#property_order; $i++) { if ($line =~ /^\s*$property_order[$i]:/) { $order = $i; last; } } return $order; } 1つの要素番号を得るために、毎回、最大数百回のfor文(このプログラムだと454回)が実行されます。 しかもこれがsortのたびに発生するので、とんでもない回数の処理(最悪でO(n2)*O(n)?よくわからんけど)が発生