Im Wesentlichen möchte ich ein Array erstellen und eine einzelne Zeichenfolge erstellen, deren Elemente durch eine neue Zeile getrennt sind.
Ich habe ein Array namens $zones
. Die Ausgabe des Verweises auf $zones
bestätigt, dass es sich um ein Array handelt.
Der folgende Code:
%Vor%ergibt die folgende Ausgabe
%Vor% Ich möchte dieses Array wirklich nicht manuell durchlaufen. Kann jemand erklären, warum die Funktion join()
den Namen des Typs zusammen mit einer Hex-Zahl zurückgibt?
Wie man das tut, wird von user1937198 gut erklärt, aber warum funktioniert es so?
Es ist einfach:
$zones
ist kein Array. Es ist eine Array-Referenz.
join
funktioniert in Listen. Also wenn du es tust:
Sie rufen im Wesentlichen join
in einer Liste mit einzelnen Elementen auf. Und das Element ist eine Referenz, die zufällig an ARRAY(0x170cf0d8)
anknüpft.
Damit es richtig funktioniert, muss es dereferenziert werden, und zwar durch Voranstellen eines echten Datentyps ( @
oder %
oder in manchen Fällen $
).
Dies kann so geschrieben werden: @$zones
, oder (einige, einschließlich mir, sagen, dass es besser lesbar ist) als: @{ $zones }
.
Dies ist wichtig, wenn Sie verschachtelte Strukturen haben, denn obwohl Sie ein einfaches Array als Variable haben können, handelt es sich bei verschachtelten Datenstrukturen immer um Referenzen.
Tags und Links perl