のんびり読書日記

日々の記録をつらつらと

Perlでconstantを使うときの注意

この前CPANにアップしたモジュールでCPAN Testersの結果を見てたら、Perlのversion5.6.2で毎回テストに失敗してて、何でだろう?と思っていたらbug reportがきていた。

The syntax you are using to declare constants was not always supported.
perl 5.6.2 came with version 1.02 of constant.pm and there this syntax
was not supported.
...

constants.pmの古いバージョン(1.0.2以下)だとconstantsを一度に複数指定する書式をサポートしていないのが問題らしい。 なので下のように書いているところでエラーが出てたみたい。

use constant {
    AAA => 1,
    BBB => 2,
};

下のように一つ一つ定義するようにすればオッケーみたい。

use constant AAA => 1;
use constant BBB => 2;

普段書くときは複数同時指定でもいいけど、CPANモジュールみたいに古い環境でも実行される可能性がある場合は、個別に定義した方がいいのかな。これも多分常識なんだろうけど、とりあえずメモメモ。

それにしてもバグレポートなんて初めてもらったけど、すごくうれしいなぁ。あとやっぱり英語重要。丁寧に返事をしたいけど、いまいち言い回しが分からない…。