Perlの美学は本当に美学?

2023 年 11 月 8 日 by hiro-k

今回LinuxのOS VersionUpによって確認された

Perlでの問題点について共有したいと思います。

Perlをよく利用されている方はご存じだと思いますが、

省略は Perl の美学というものがあります。

私もついやってしまうことがありますが、見やすさより省略を駆使し、短文でコードを書くというものです。

例えば、変数$_や@_があります。

これは省略時変数と呼ばれ、省略するとこの変数に値が書き込まれたりします。

省略を使用せずに書くと

        open(IN, “data.txt”);

        while ($line = <IN>) {

                chop($line);

                if ($line =~ /^From:/) { print $line; }

        }

        close(IN);

のような記述となりますが、省略変数を使用すると

        open(IN, “data.txt”);

        while (<IN>) {

                chop;

                if (/^From:/) { print; }

        }

        close(IN);

となります。

では、これで何が問題なのか?なのですが、

LinuxのOS VersionUPでPerlのVersionも変わり、

split()の仕様が変わったためです。

どう変わったのか?ですが、

        split(***);

と記述できていたのですが、戻りを@_で受けることが出来なくなりました。

そのため、省略せず

        @values = split(***);

と戻りを受ける必要があります。

美学を追求すると読みづらくなる点も含めて、

最近はこのような問題も出てきています。

皆さんは美学というものがあるという程度の認識で

読みやすいコードを書くようにしましょう。

タグ: ,

TrackBack