frei

旧「anney's room」からブログ「frei」だけ引っ越し&残しました

まとめて定数。

もう何度も使ってるんだけど、

何度も忘れるから健忘録(苦笑)

perl で定数をパッケージに設定しといて

別のスクリプトから、まとめて複数の定数を読み込む方法。

Constants.pm

package Constants;

use strict;

use vars qw(@ISA @EXPORT_OK %EXPORT_TAGS);

require Exporter;

@ISA = qw(Exporter);

%EXPORT_TAGS = (

common => [qw(BASE_URL TRUE FALSE)],

dir => [qw(ROOT_DIR CSV_DIR TEMPLATE_DIR)]

);

@{$EXPORT_TAGS{'all'}} = map {@$_} values %EXPORT_TAGS;

@EXPORT_OK = map {@$_} values %EXPORT_TAGS;

use constant BASE_URL => 'http://anigon.net/';

use constant TRUE => 1;

use constant FALSE => 0;

use constant ROOT_DIR => '/home/anigon/';

use constant CSV_DIR => ROOT_DIR.'csv/';

use constant TEMPLATE_DIR => ROOT_DIR.'tmpl/';

1;

test_dir.pl

#!/usr/bin/perl -w

use strict;

use Constants qw(:dir);

print CSV_DIR;

exit;

test_common.pl

#!/usr/bin/perl -w

use strict;

use Constant qw(:common);

print BASE_URL;

exit;

test_all.pl

#!/usr/bin/perl -w

use strict;

use Constants qw(:all);

print BASE_URL;

print CSV_DIR;

exit;