変数名に変数を利用する場合に、myをつけて宣言するとエラーがおこります。
---
#!/usr/bin/perl
use strict;
use warnings;
my $date = "0215";
my $data = "hoge";
my ${'abc' . $date} = $data;
exit;
---
と記述すると、
Can't declare scalar dereference in my at test.cgi line 8, near "} ="
という具合です。
こちらの宣言の修正方法を教えてください。
Can't declare scalar dereference in my at test.cgi line 8, near "} ="
読んで字の通り。
my ${'abc' . $date} = $data;
こんな変数の宣言の仕方は use strict 環境内では使えない。
よほどのことがない限りソフトリファレンスでないと困ることはないし、デメリットが大きすぎる。
書き直すことをお勧めする。
my %abc = ( $date => $data );
等。
使えないんですね。了解です。
たしかにハッシュで全て代用がきくものですので、ハッシュに変えたいと思います。
ありがとうございました