array mit zeigern: zugriff
norman
- perl
hallo!
referenzen sind ja ne feine sache, wenn man damit umgehn kann :-) ...
wie kann ich den inhalt des zeigers an der stelle $pfade_all[$i] ausgeben?
pseudo-hash:
%hash = (name=>[norman,wee], ort=>[berlin,mitte]);
push(@pfade_all, $hash{"name"});
soll "norman" ergeben:
print @{$pfade_all}[0][0]; -> schmeißt nen fehler
schon mal danke für die mühe!
norman
use Mosche;
pseudo-hash:
%hash = (name=>[norman,wee], ort=>[berlin,mitte]);push(@pfade_all, $hash{"name"});
soll "norman" ergeben:
print @{$pfade_all}[0][0]; -> schmeißt nen fehler
Es gibt keinen Skalar $pfade_all, nur den Array @pfade_all. Deshalb:
$pfade_all[0][0];
use Tschoe qw(Matti);
hi,
push(@pfade_all, $hash{"name"});
du hast recht bei diesem konstrukt kann ich mit $pfade_all[0][0]; auf "norman" zugreifen, aber der array @pfade_all enthält nur zeiger auf den hash und ich weiss nich wie man in diesem fall auf "norman" zugreift.
push(@pfade_all, $hash{"name"});
print $pfade_all[0]{$pfade_all}[0][0]; oder so ähnlich?
print $pfade_all[0]; ergibt: SCALAR(0x19dc450)
mfg
norman
use Mosche;
pseudo-hash:
%hash = (name=>[norman,wee], ort=>[berlin,mitte]);push(@pfade_all, $hash{"name"});
soll "norman" ergeben:
print @{$pfade_all}[0][0]; -> schmeißt nen fehlerEs gibt keinen Skalar $pfade_all, nur den Array @pfade_all. Deshalb:
$pfade_all[0][0];use Tschoe qw(Matti);
use Mosche;
Ich empfehle dir bei Referenzgeschichten mal die Ausgabe von Data::Dumper; Bsp:
use Data::Dumper;
print Dumper @pfade_all, $pfade_all[0];
Mit ein bißchen Übung kannst du da alles rauskriegen.
Außerdem bitte besser quoten... kein TOFU, bitte.
push(@pfade_all, $hash{"name"});
print $pfade_all[0]; ergibt: SCALAR(0x19dc450)
Sollte dir den Hinweis geben, dass du einen Skalar dereferenzieren musst. In diesem Skalar befindet sich dann dein anonymer Array, wovon du das erste Element haben willst.
print ${$pfade_all[0]}->[0]; # funktioniert
Die Referenz auf deinen anonymen Array ist aber ziemlich sinnlos. Wofür brauchst du das denn?
use Tschoe qw(Matti);
hallo!
referenzen sind ja ne feine sache, wenn man damit umgehn kann :-) ...
wie kann ich den inhalt des zeigers an der stelle $pfade_all[$i] ausgeben?
pseudo-hash:
%hash = (name=>[norman,wee], ort=>[berlin,mitte]);push(@pfade_all, $hash{"name"});
ist das nicht doppelt gemoppelt?
$hash{name} ist eine Referenz auf ein Array und davon willst du eine Referenz auf pfad_all pushen?
Du willst:
push @pfade_all, $hash{name};
soll "norman" ergeben:
print @{$pfade_all}[0][0]; -> schmeißt nen fehler
Auf Referenzen greifst du mit den Pfeil zu:
$pfade_all[0]->[0];
Struppi.
use Mosche;
soll "norman" ergeben:
print @{$pfade_all}[0][0]; -> schmeißt nen fehlerAuf Referenzen greifst du mit den Pfeil zu:
$pfade_all[0]->[0];
In dem Fall stimmt deine Lösung nicht, wie man an meinem zweiten Posting sehen kann (weil eine Dereferenzierung fehlt). Eine Anmerkung noch meinerseite: der Pfeil zwischen zwei Dereferenzierungen ist optional.
use Tschoe qw(Matti);