Perlでconstant(定数)をhashのキーに使う
約 2 分
目次
概要
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'
# };
参考にしたサイト
最新の記事
よく読まれている記事
タグから探す
- javascript129
- typescript66
- node.js54
- linux54
- 画像処理48
- amazon-aws47
- アルゴリズム37
- canvas35
- html529
- 画像処理100本ノック27
- php24
- centos24
- python22
- 競技プログラミング21
- mac21
- mysql20
- opencv17
- 雑談16
- 機械学習16
- docker16
- wordpress15
- atcoder14
- apache12
- データベース12
- amazon-s312
- red-hat12
- prisma12
- ubuntu11
- github10
- git10
- react10
- mariadb10
- vue.js9
- aws-cdk9
- css38
- 可視化8
- 小ネタ8
- next.js8
- nestjs8
- amazon-lightsail7
- ブログ6
- cms6
- oracle6
- perl6
- gitlab6
- iam5
- amazon-ec25
- 資格試験5
- aws-amplify5
- curl4