ドラクエウォーク攻略 → https://dqw.ek-pro.com/ を更新したときに、以下のエラーがでた。

Experimental keys on scalar is now forbidden
スカラーの実験的なキーは現在禁止されています

PCを新しくしたのだが、その際にPerlのバージョンも新しくした為だと思われれる。


もとのコードは以下の通りで、DBにSELECTをして結果をハッシュとして取得、ハッシュのリファレンスからキーを取得する、という流れだった。
#特殊効果の説明テーブルを全件検索し、結果をハッシュとして取得、結果のハッシュからキーをすべて取得し、配列に格納する
#SQL
my $select_tokushu_setsumei = 'select * from "tokushu_kouka_setsumei"';

#SELECT実行
my $sth = $dbh->prepare($select_tokushu_setsumei);
my $rv = $sth->execute();

#結果をハッシュとして取得し、キー値を配列に格納
my $hash_tokushu_kouka_name = $sth->fetchrow_hashref();
my @array_tokushu_kouka_name = keys $hash_tokushu_kouka_name;


で、この「keys」という部分で「Experimental keys on scalar is now forbidden(スカラーの実験的なキーは現在禁止されています)」に該当していた。


https://perlzemi.com/blog/20080210120265.html
ハッシュのリファレンスを引数として渡す場合は、デリファレンスする必要があります

# すべてのキーを取得。ハッシュのリファレンスの場合。
my @keys = keys %$hash;



を参考にし(ありがとうございます)、

my @array_tokushu_kouka_name = keys %$hash_tokushu_kouka_name;

のかたちでデリファレンスすることで解決!!