Christian Kruse: Referenzen -- wozu ?

Beitrag lesen

Hoi,

$var = [1, 2, 3, 4];

  1. Wie kann eine Liste ein Skalar sein ?

Dem ist ja auch nicht der Fall. $var ist eine *Referenz* auf
die Liste, sie zeigt darauf, so nach dem Motto "Da, da hinten,
da ist was, was dich interessieren koennte."

Aber in dem Fall ist doch da hinten garnix.

Klar ist da was.

Es gibt ja kein:
@x = (1,2,3,4);
$var = /@x;

Du meinst '$var = @x;'
Deshalb ist es ja auch eine anonyme Liste. Sie zeigt nicht auf eine
real existierende Variable, sondern auf eine Speicherstruktur.

Ich dachte in $var steht nur eine Adresse Z.b. 0x4451 drin,

Ja.

aber wo stehen in dem Fall die Werte 1,2,3,4?!?

Im Speicher. Variablen sind auch nichts anderes als 'implizite'
Zeiger auf Strukturen, die in den Speicher gepresst wurden. Du merkst
davon zwar nicht viel (deshalb ja auch 'implizite Zeiger'), aber es
ist so; Referenzen sind (in Perl) explizite Zeiger auf derartige
Strukturen. Du musst sie von Hand dereferenzieren.

Hmm um das zu verstehen müsste ich die erste Fragte wissen, denn
mehrdimensionale Arrays hab ich so gelesen.
@a = (1,2,3);
@b = (3,4,5);

@allarray = (@a, @b);

Das ist auch eine Liste von Referenzen auf Listen.

Ist das in deinem Beispiel jetzt auch eine REferenz oder ?

Ja.

Und wieder mit anonymen Listen.

Ja.

Gruesse,
 CK