objekt und und eine funktions ala keys
|
Seitenanfang |
| hi ich beschaeftige mich mit perl und oo. und brauechte ich eine funktions wie my @list = keys (%dateien); jedoch fuer mein $self->{}; da ich dynamisch werte dem array hinzufuegen muesse die im zweifel bei der abfrage anonym sind, brauchte ich halte ein list funktion um zu sehen was alles in $self enthalten ist. holger
Datum: 21.09.2009-11:51

|
re: objekt und und eine funktions ala keys
|
Seitenanfang |
| Ich habe Deine Frage nicht ganz verstanden. Kannst Du das vielleicht nochmal genauer beschreiben? Wenn $self ein Objekt ist, das auf einer Hashreferenz basiert und Du einfach nur die Schlüssel der Hashreferenz haben willst, dann kannst Du einfach my @schluessel = keys %$self; machen...
Datum: 21.09.2009-14:28

|
re: objekt und und eine funktions ala keys
|
Seitenanfang |
| hi genau das wars , was jetzt noch fehlt ...;) ist ich hatte im hash mehrer felder die ich mit $hash{datei}->[0] z.b. abgrufen habe. das klappt so nicht mehr ? akuell steht da z.b.
my $t=\$hash->{$datei}->[0];
was verkehrt ist.wie waehre da der richtige aufruf ? holger
Datum: 22.09.2009-09:12

|
re: objekt und und eine funktions ala keys
|
Seitenanfang |
| Was heißt "das klappt so nicht mehr"? Gibt es Fehlermeldungen? Was ist Deine Ausgangssituation? Was willst Du am Ende erreichen? Da das ganze mit Referenzen zu tun hat, würde ich Dir empfehlen mal http://wiki.perl-community.de/cgi-bin/foswiki/view/Perldoc/perlreftut zu lesen...
Datum: 22.09.2009-11:52

|
re: objekt und und eine funktions ala keys
|
Seitenanfang |
| ausgangs punkt ist der ich fuelle mein hash mit mehreren feldern $hash{$datei}=["a","b","c"]; das konnte ich dann nachher mit my $a=$hash{$datei}->[0] ; abfragen. das war eine normale sub funktion ,diese will ich nun als objekt umbauen. beinhaltet der hash nur eine wert ist das ok , my $a=$hash->{$datei}; # was a ergeben sollte. aber wie komme ich nun an b und c drann ? holger
Datum: 22.09.2009-12:46

|
re: objekt und und eine funktions ala keys
|
Seitenanfang |
| Ein Objekt ist in der Regel nichts anderes als eine Hashreferenz. Wenn Du also früher $hash{datei} = [1,2,3] gemacht hast und %hash soll durch das Objekt $self ersetzt werden, dann muss es im Code auch entsprechend $self->{datei} = [1,2,3] heißen. Ich hoffe, Du greifst nicht von außen auf die Attribute des Objektes zu, weil Du dann die sogenannte Kapselung umgehen würdest. Perl erlaubt es zwar, in den Eingeweiden des Objektes rumzuwühlen, aber man sollte sich auch in Perl an gewisse Regeln der Objektorientierung halten.
Datum: 23.09.2009-08:23

|
re: objekt und und eine funktions ala keys
|
Seitenanfang |
hi nein ich will sogar dass mein hash ur im objekt "lebt" und von aussen nicht zu verfuegung steht.und das mit dem setzen ist somit auch klar , jedoch wie lese ich das ganze aus ? wenn ich $self->{datei} = [1,2,3] ; setze habe ich frueher my $a=$hash{datei}->[0]; den wert ausgelesen , ein my $a = $self->{datei}->[0] ; geht jedoch nicht ! holger
Datum: 23.09.2009-09:15

|
re: objekt und und eine funktions ala keys
|
Seitenanfang |
hi danke nochmal fuer die hilfe es klappt jetzt , mit etwas probieren .die abgrage funktioniert doch mit my $a=$self->{datei}->[0]; hatte das nur nicht befuellt da an anderer stelle noch etwas nicht umgestellt war. holger
Datum: 23.09.2009-12:37

|