[Vienna-pm] Hash-Frage von extern
Thomas Klausner
domm at zsi.at
Tue Sep 28 05:51:27 CDT 2004
Hi!
On Tue, Sep 28, 2004 at 12:23:44PM +0200, Carl A. Schreiber wrote:
> Am Dienstag, 28. September 2004 12:07 schrieb Thomas Klausner:
> > On Tue, Sep 28, 2004 at 11:44:15AM +0200, Carl A. Schreiber wrote:
> > > Was hei?? hier:
> > > %hash->{$a}{$b} += $eintrag->{DATA1};
> > > ist das gleich:
> > > $hash{$a}{$b}{DATA1} = $eintrag{DATA1};
> > > Wird also dem hash %hash ein neues Element (key=>value) hinzugef??gt?
> >
> > Nein.
> >
> > += addiert zu dem Ding auf der linken Seite das Ding auf der rechten.
> >
> > d.h. was auch immer sich hinter $hash{$a}{$b} versteckt ist nachher der
> > alte Wert von $hash{$a}{$b} PLUS $eintrag{DATA1}.
>
> Das w?rde ja bedeuten, dass
> %hash->{$a}->{$b} += $eintrag{DATA1}
> (Zusatzfrage: was bedeutete %hash{$a}{$b} ?)
> gleich
> $hash->{$a}->{$b} += $eintrag{DATA1}
> (das ist ja eindeutig)
> ist? Warum dann %hash-> ..
> Ich dachte das waere eine Slice-Version f?r hashes
> (aehnlich Arrays: @arr[0,1,2,3])
>
> Gibt's das ?berhaupt?
Moment:
%hash ... ein Hash
$hash{key} ... ein Wert dieses Hashes
$hashref ... eine Referenz auf einen Hash
$hashref->{key} ... ein Wert dieser Hashref
Bei verschachtelten Datenstrukturen (Hash of Hashes, o.ae.) konnen die
Pfeile zwischen den Ebenen weggelassen werden.
$hashref->{$a}{b}
ist dasselbe wie
$hashref->{$a}->{$b}
(nur kuerzer :-)
Hash-Slices hab ich noch nie verwendet, aber anscheinend (perldoc perldata)
verwenden Hash-Slices ein @ als Sigil:
@colors{'red','blue','green'}=(0xff0000, 0x0000ff, 0x00ff00);
Oder reden wir irgendwie aneinander vorbei?
--
#!/usr/bin/perl http://domm.zsi.at
for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
More information about the Vienna-pm
mailing list