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