[Cologne-pm] $${VariablenName} funktioniert nicht immer
Robert Meiser
Robert.Meiser at rrz.uni-koeln.de
Wed Jun 11 17:38:44 CDT 2003
Danke für den Hinweis "Fortgeschritten", hab mich dadurch an mein Buch
"Fortgeschrittene Perl-Programmierung" erinnert, das mir beim Kauf noch
ein Buch mit 7 Siegeln war. Scheint der Zeitpunkt zu sein reinzuschauen.
Wusste nicht dass $$Name eigentlich zum dereferenzieren gedacht ist.
On Wed, 11 Jun 2003, Michael Lamertz wrote:
> Muss jetzt zum Treffen, deshalb nur kurz...
>
> On Wed, Jun 11, 2003 at 04:40:53PM +0200, Robert Meiser wrote:
> > Hallo Perlfreunde,
> > Ich möchte gerne mit dynamischen Variablen-Namen arbeiten, d.h. mit der
> > Konstruktion '$$Variable', wobei $Variable in einer foreach-Schleife
> > ständig neue Werte bekommt und somit $$Variable sich in jedem
> > Schleifendurchlauf auf eine andere Variable bezieht.
>
> Vorsicht. Einsatz von Soft-Refs ist 'was fuer Fortgeschrittene. Evtl.
> bist Du mit einem Hash besser 'dran.
>
> Unter 'use strict' funktionieren Soft-Refs ohnehin nicht, es sei denn,
> Du unterbindest das gezielt mit "no strict 'refs';". Sowas wuerde ich
> dann in geschweiften Klammern direkt um den betreffenden Code setzen:
>
> {
> no strict 'refs';
> $$softref = 42;
> }
>
> > Funktioniert eigentlich auch, zumindest in Scripts ohne CGI auf dem
> > lokalen Rechner. Aber sobald ich das in ein CGI-Script einbaue eben
> > nicht mehr.
> >
> > Hier ein kleiner Scriptauszug:
> >
> > -- SCHNIPP
> > $NachnameSuchstring=$query->param(Nachname);
> >
> > #Test1
> > $Suchstring='NachnameSuchstring';
> > $NachnameSuchstring='.*teste.*';
> > print STDERR qq{Wert Suchstring: $$Suchstring \n};
> >
> > #Test2
> > $Suchstring='SuchstringNachname';
> > $SuchstringNachname='.*teste.*';
> > print STDERR qq{Wert Suchstring: $$Suchstring \n};
> >
> > -- SCHNIPP
> > Ergebnis:
> > Test1 gibt für $$Suchstring den Leerstring aus
> > Test2 gibt für $$Suchstring den erwünschten Wert .*teste.* aus
>
> Mit genau diesem Code bei mir nicht. Das Problem bei Softrefs und
> abgeschalteten Warnings ohne 'strict' ist, dass Du keine Fehlermeldung
> bekommst wenn die Softref wg. Tippfehler in die Wueste zeigt.
>
> Komm doch zum Treffen, dann schauen wir nochmal 'drueber...
Danke für das Angebot, kann aber leider nicht kommen. Vielleicht beim
nächsten mal.
Gruss
Robert
More information about the Cologne-pm
mailing list