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(***);
と戻りを受ける必要があります。
美学を追求すると読みづらくなる点も含めて、
最近はこのような問題も出てきています。
皆さんは美学というものがあるという程度の認識で
読みやすいコードを書くようにしましょう。