[Cologne-pm] Felder eines Arrays ausgeben
Robert Meiser
Robert.Meiser at rrz.uni-koeln.de
Wed Mar 10 17:58:01 CST 2004
On Wed, 10 Mar 2004, A. Pagaltzis wrote:
Hmmmm....
Hallo Aristoteles,
> Hallo Robert,
>
> * Robert Meiser <Robert.Meiser at rrz.uni-koeln.de> [2004-03-10 15:35]:
> > Wenn ich den Bereichsoperator im Programmcode verwende
> > wird offensichtlich
> > "0..3"
> > zu
> > "0,1,2,3"
> > interpoliert
> >
> > Das ist gut!
> >
> > Wenn ich aber
> > $Param="0..3"
> > print @Datensatz[$Param]
> > versuche, tut er dies leider nicht.
>
> Natürlich, du verwendest einen String, der als Zahl interpretiert
> nur "0" ergibt, als Index. Das kann nicht funktionieren.
Ok. Jetzt verstehe ich schon mal was da vor sich geht
> > Wie bewege ich nun das Programm dazu, diesen String korrekt zu
> > interpolieren?
>
> Du musst eine Liste von Zahlen verwenden.
>
> @Param = ( 0 .. 3 )
> print @Datensatz[ @Param ];
Schon klar, aber wie kriege ich den String
$param ="0..3"
in die Liste
(0..3)
verwandelt?
Ich bastele nämlich die Parameter nach entsprechender Bearbeitung so
zusammen:
foreach $param (@params) { # @params=(-2,2-3,1,6-)
...
verwurste Parameter
...
$param = join ("", ($startfeld, $operator, $Endfeld)); # = x..y
push (@cleanparams,$param);
}
# @cleanparams ist nun (0..2,2..3,1,6..$#Datensatz)
und versuche dann genau was du auch tust:
print @Datensatz[@cleanparams];
aber er scheint die einzelnen Elemente in @cleanparams ebenfalls als Zahl
zu interpretieren. Wie gewöhne ich ihm das ab?
Kann leider gerade nicht testen, aber ist der Trick vielleicht ohne join
alle parameterbestandteile einzeln zu pushen?
> * Robert Meiser <Robert.Meiser at rrz.uni-koeln.de> [2004-03-10 15:35]:
> > Sorry, war leider ein Schnellschuß. Hab inzwischen
> > herausgefunden, daß mein Freund "eval" heißt.
>
> Nein, eval() ist nicht dein Freund.
Gruß
Robert (der immer noch keinen Freund hat :-()
More information about the Cologne-pm
mailing list