Bitte überprüfen Sie den Code unten:einen Schlüssel verwenden, die den Wert einer Konstante in einem Hash in Perl ist
my %hash = (
123 => "a",
456 => "b",
);
use constant x_1 => 123;
use constant x_2 => 456;
ich so etwas wie $ hash verwenden möchten {x_1} "a" zu bekommen. Ich habe versucht, x_1 in eine Variable zu speichern und sie dann als Schlüssel zu verwenden, es hat funktioniert. Wie
my $var = "x_1"; # or my $var = x_1
Aber wenn ich die Variable x_1 aus einem Array erhalten, die ich in einer Variablen speichern, und dann versuchen, den Hash aus dieser Variable zuzugreifen, zeigt es einen Fehler. Wie
my @arr;
$arr[0]{"y_1"} = "x_1";
$arr[0]{"z_1"} = "x_2";
my $newVar = $arr[0]{"y_1"};#$newVar = x_1
print $hash{$newVar}; #this shows error.
Wie konnte ich die Variable nicht als String, sondern als hier konstant?
Syntaxfehler: use =>, not = ... 'Konstante verwenden x_1 => 123;' – toolic
Entschuldigung. Korrigiert jetzt – aayu5h
Syntaxfehler: '$ arr {" y_1 "} =" x_1 ";'. Arrays verwenden '[]'. Hashes verwenden '{}' – stevieb