Sagen Sie, ich habe das:
%Vor% Wie kann ich später herausfinden, ob das, was gespeichert wurde, ein Skalar war, wie in "abc"
, oder ein Array, wie in [1, 2, 3]
?
Zunächst ist Ihr Beispiel für eine Array-Referenz falsch - Ihre $hash{"b"}
wird mit einem Skalarwert enden: das letzte Element der Liste, die Sie angegeben haben (in diesem Fall 'c') ).
Das heißt, wenn Sie tatsächlich sehen wollen, ob Sie einen Skalar oder eine Referenz haben, verwenden Sie die Funktion ref
:
Google Docs
Zunächst speichert $hash{"b"} = qw/a b c/;
'c'
in $hash{"b"}
, kein Array, Sie haben vielleicht $hash{"b"} = [ qw/a b c/ ];
gemeint, das einen Verweis auf ein Array in $hash{"b"}
speichert. Dies ist das Schlüsselelement der Information. Alles andere als ein Skalar muss als Referenz gespeichert werden, wenn es einem Skalar zugewiesen wird. Es gibt eine Funktion mit dem Namen ref
, die Ihnen Informationen über eine Referenz liefert, aber Ihnen den Namen gibt der Objektklasse, wenn die Referenz gesegnet wurde. Glücklicherweise gibt es eine weitere Funktion namens reftype
, die immer den Typ der Struktur in Scalar::Util
zurückgibt.
Tags und Links perl