[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