[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 この前FizzBuzzのコードをどれだけ短くできるかに挑戦して、62byteでギブアップしたとき、最短のコードが48byteだと分かった。 そのコードがこれ。 print+(Fizz)[$_%3].(Buzz)[$_%5]||$_,$/for 1..1e2 これがどういう動作をしてるのか、分からないと夜しか眠れない。 というよりも、分からないのが気に食わない。 分からないことがあるのが嫌な性分なので、分かるまで徹底的に調べてみる。 まず問題なのは、print+の部分の+。 このプラス記号は、「単項プラス演算子」という名前らしい。 これは「関数の引数を関数実行より先に評価する場合に有効」らしい。 一応perldocを見てみる。 「perlop - Perl の演算子