Antw: Problem mit Array
Peter Seitz jun.
p.seitz at koehler-seitz.de
Wed Dec 29 05:40:18 CST 1999
* * * vienna-pm-list * * *
On Tue, 28 Dec 1999 12:05:08 +0100
"Roland Bauer" <Roland.Bauer at mediaprint.at> wrote:
Hallo Roland,
[...]
> aber statt
>
> @string1 = (@string1, $text);
>
> wuerde ich
>
> push @string, $text;
>
> verwenden.
>
> und ausserdem: immer "use strict;" verwenden ;-)
>
> folgende loesung ist kuerzer:
>
> # ------------------------------------
>
> use strict; # WICHTIG !!!!!! ;-)
>
> my %x = (a => 1, b => 2);
> my %y = (c => 1, d => 2);
> my %z = (e => 1, f => 2);
>
> my %alle = (%x, %y, %z);
Das duerfte bei mir nicht klappen, da einige Schluessel identisch
sind! Ich wuerde mir also einen bereits bestehenden Schluessel
ueberschreiben (bzw den darauf abgespeicherten Wert).
>
> my @keys = keys %alle;
>
> print "@keys";
>
> # --------------------------------------
>
>
> wenn man die zwischenvariable %alle wegbringen will,
> muss man mit referenzen arbeiten. oder geht das auch
> einfacher?
>
> denn keys will unbedingt ein "%", aber (%x, %y, %z) ist eine liste ...
>
> mit anderen worten:
>
> $a . $b ... verkettet strings
> (@a, @b) ... verkettet listen
> %{ { %a, %b } } ... verkettet hashes (achtung, trick !!)
>
> # -----------------------------------
>
> use strict;
>
> my %x = (a => 1, b => 2);
> my %y = (c => 1, d => 2);
> my %z = (e => 1, f => 2);
>
> my @keys = keys %{ { %x, %y, %z } };
Ist wohl noch effizienter als der von Peter Holzer beschriebene Weg,
oder?
[...]
Ich habe in einem Buch gelesen, dass man auch bei Perl sehr wohl auf
die Code-Optimierung achten kann (insbesondere wenn Felder oft
umgespeichert werden).
Gruss
Peter Seitz
Projektleiter Projekt Woerterbuch
--
Interesse an einem freien deutschen Woerterbuch? Helfer gesucht!
Projekt Woerterbuch: <URL:http://Free-Dict.bzs.tu-graz.ac.at/>
###
You are subscribed to vienna-pm-list
http://www.fff.at/fff/vienna.pm/
More information about the Vienna-pm
mailing list