Hier ist die Struktur verwenden, die ichKann Zeichenkette nicht als Hashreferenz
Dumper $resourceAudit
$VAR1 = '{
\'rh6\' => {
\'h\' => 1,
\'n\' => 1
},
\'win2k8\' => {
\'h\' => 1,
\'n\' => 1
},
\'win2k12\' => {
\'h\' => 3,
\'n\' => 3
},
\'win2k3\' => {
\'h\' => 0,
\'n\' => 1
},
\'usim\' => {
\'h\' => 4,
\'n\' => 4
}
}';
Also zugreifen bin versucht, ich weiß, dass $ resourceAudit tatsächlich eine Zeichenfolge ist und so ist %$resourceAudit
sicher, mich zu geben, die Can't use string as a HASH reference
Fehler.
Gibt es eine Möglichkeit, die ich umgehen kann und auf den Schlüssel 'rh6'
zugreifen?
können Sie versuchen, verwenden Sie [ 'eval'] (https://perldoc.perl.org/functions/eval.html), um die Zeichenfolge in ein Perl ersten –
Hash zu konvertieren Wenn Sie die' eval' Weg gehen Stellen Sie sicher, dass die Variable keinen schädlichen Code enthält. – choroba
Falls Ihnen das nicht klar ist: Ihre Variable enthält eine String-Repräsentation der Datenstruktur, nicht die Datenstruktur selbst. Sie können dies erkennen, weil die Anführungszeichen masked '\ 'rh6 \' sind, und weil die Fehlermeldung besagt, dass _string ** nicht als HASH-Referenz verwendet werden kann. Also, 'eval' ist deine beste Wette, wie @ HåkonHægland sagt. – simbabque