Perlでconstant(定数)をhashのキーに使う
2021-04-193 min read
目次
概要
Perlでconstant(定数)をhashのキーに使う方法でハマりました。その時の解決方法です。
ハマった事象
例えば以下のようなコードがあったとします。
use constant VAR_1 => 'var_2';
my $hash_ref = {
VAR_1 => 'hoge'
};
print $hash_ref;
ここで期待する出力はvar_2
をキーとするハッシュ(リファレンス)を想定していましたが、実際にはVAR_1
がキーとなっていました。
# 期待していた値
$VAR1 = {
'var_2' => 'hoge'
};
# 実際に定義された値
$VAR1 = {
'VAR_1' => 'hoge'
};
解決方法
1 括弧をつける
Perlのconstantはサブルーチンと同じ扱いとなるようなので、括弧をつけて呼び出します。
use constant VAR_1 => 'var_2';
my $hash_ref = {
VAR_1() => 'hoge'
};
print $hash_ref;
# $VAR1 = {
# 'var_2' => 'hoge'
# };
2 & をつける
use constant VAR_1 => 'var_2';
my $hash_ref = {
&VAR_1 => 'hoge'
};
print $hash_ref;
# $VAR1 = {
# 'var_2' => 'hoge'
# };
参考にしたサイト
Recommends
New Posts
Hot posts!
Date
Tags
(110)
(54)
(54)
(47)
(45)
(36)
(30)
(29)
(24)
(24)
(22)
(21)
(21)
(20)
(19)
(17)
(16)
(16)
(15)
(14)
(12)
(12)
(12)
(12)
(12)
(12)
(11)
(10)
(10)
(10)
(10)
(10)
(9)
(9)
(8)
(8)
(8)
(8)
(7)
(7)
(6)
(6)
(6)
(6)
(6)
(5)
(5)
(5)
(5)
(4)
Author