[Cologne-pm] $${VariablenName} funktioniert nicht immer

Michael Lamertz mike at lamertz.net
Wed Jun 11 10:17:31 CDT 2003


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...

-- 
	    Well, then let's give that Java-Wussie a beating... (me)

Michael Lamertz                        |     +49 2234 204947 / +49 171 6900 310
Sandstr. 122                           |                       mike at lamertz.net
50226 Frechen                          |                 http://www.lamertz.net
Germany                                |               http://www.perl-ronin.de 



More information about the Cologne-pm mailing list