まず最初に、これはかなり一般的な問題ですが、私は周りを見回しています。"strict refs"を使用しているときにHASH refとして文字列を使用することはできません
私はJSON
ファイルから読んでいるデータがありますが、基本的にはIDを表す文字列のセットです。
私はそうのようにそれをインポートします。
my $idFile='IDS.json';
my $idJSON;
{
local $/;
open my $fh, '<', $idFile or die $!;
$idJSON = <$fh>;
close $fh;
}
my $id_array = decode_json $idJSON;
これは$id_array
が今のように見えるものです:
$VAR1 = [
'3233',
'2758',
'2797'
];
私は、ハッシュマップの形でMISC
タグでそれらを保存しますが、この私の"Can't use string ("3233") as a HASH ref while "strict refs" in use "
エラーがスローされている場所です:
my @decodedIDS = map { $_ ->{MISC}} @{$id_array};
このエラーの原因は何ですか?いつものように、どんな助けも大歓迎です。
私はあなたが何をしようとしては不明だ...あなたは '@decodedIDS欲しいものを説明してくださいすることができます'を入れる? – ThisSuitIsBlackNot
「ハッシュマップの形でMISCタグを付けて保存する」と言っていたのでしょうか?多分、あなたは '@decodedIDS = map {MISC => $ _} @ {$ id_array}'と言っていたでしょうか? – mob
これはハッシュではありません@mob。 'my%decodedIDS = map {$ _ => 1} @ $ id_array;'はidでキーを付けたハッシュを作成します。 – ikegami