FrankS: Inhalt eines Strings als Variablenname?

Moin allerseits,

heute habe ich irgenwie eine Knoten im Kopf, kein Wunder bei dem Wetter ...
Mein Problem: ich habe einen Variable, die einen String enthält (den ich erst zur Laufzeit des Scripts kenne) und diesen will ich als Variablennamen nutzen. Beispiel:

$varname="test";

#hier möchte ich der Variablen mit dem Namen aus $varname, also $test, einen Wert zuweisen...
#das ist das große ?

print $test;

Kann einer von Euch mir helfen?

Besten Dank und viele Grüße,
Frank

  1. Hallo,

    wieso benutzt Du dazu keinen Hash?

    $hashname{'test'} = "blablabla";
    oder
    $hashname{$wasdununkennst} = "blablabla";

    Viele Grüße
     Philipp

  2. Hallo,

    Mein Problem: ich habe einen Variable, die einen String enthält (den ich erst zur Laufzeit des Scripts kenne) und diesen will ich als Variablennamen nutzen. Beispiel:

    $varname="test";

    #hier möchte ich der Variablen mit dem Namen aus $varname, also $test, einen Wert zuweisen...

    my $varname = 'test';
    $$varname = 'inhalt';
    print $test;

    __END__

    Allerdings ist das unsauber und läuft darum auch nicht unter use strict.

    Besser finde ich die Verwendung eines Hashes:

    #!perl -w
    use strict;

    my $name = 'test';

    my %var;
    $var{$name} = 'inhalt';

    print $var{test};
    __END__

    Gruß Kai

  3. Dank Euch beiden!

    Auf die einfachsten Sachen kommt man oft nicht! Nun werde ich erstmal das Wochenende genießen!

    Gruß Frank