Data-Lock は Perl用のモジュールです。変数を変更できなくしたり、解除ができるモジュールです。定数として考えることもできますが、解除もできることから、特殊な運用やデバッグなどに便利なモジュールだと言えるでしょう。

Data-Lock の主な特徴

1) 変数をロックし、変更できなくする

例を示します。ソースコードと実行結果は次の通りです。

use strict;
use Data::Lock qw(dlock);

dlock my $AGE = 20;
dlock my @ITEM = (
  'Mobile phone',
  'Small shield',
  'Small sword'
);

$AGE = 30;
$ITEM[0] = 'Smartphone';

Modification of a read-only value attempted at t.pl line 11.

上記の例では、最初に検出したエラーとして、変数 $AGE についてエラーを表示しています。

2) 変数のロックを解除

次の通り記述するとロックを解除できます。

use Data::Lock qw/dunlock/;

dlock $AGE;
dlock @ITEM;

Data-Lock のインストール

sudo cpanm Data::Lock でインストールできます。

定数として利用するだけであれば、他にも選択肢があります。複数のモジュールで変数を参照する場面で、予期せぬ結果を得た場合に、短時間で原因を見つける方法のひとつになるのではないでしょうか。十分な設計であっても、予期せぬ問題が生じます。デバッグは辛い作業ですので、Data-Lockを使って少しでも楽にしましょう。

Data-LockはPerl製、GPL/Artistic Licenseのオープンソース・ソフトウェアです。

Data::Lock - makes variables (im)?mutable

source code