Torwächter: Variablenzuordnung (für Denker)

Hallo zusammen,

ich rufe meine Sprach-Datei mit require am Anfang meines Scripts auf.

--In der Sprachdatei:--
$txt{'1'} = "Hallo $name";

--Haupt- Script:--
require "sprachdateimitpfad";
print "$txt{'1'}";
$name = "ICH";

Das Problem:
$name wird erst unter require zugeordnet

Würde ich nun das require nach ganz unten stellen, würde mir "Hallo..." nicht angezeigt werden.
Was nun ?

Greetings
Torwächter

  1. Hallo Torwächter,

    --In der Sprachdatei:--
    $txt{'1'} = "Hallo $name";

    Scheint mir ein Tippfehler zu sein, soll wohl [] heissen.

    Was nun ?

    Struktur umstellen. Wenn Du erst nach dem Require definierst, aber vorher schon ausgeben kannst, hast Du einen logischen Fehler drin, der sich mit steigender Grösse des Scripts vervielfältigen wird!

    Gruss, Thoralf

  2. Halihallo

    [...]

    Was nun ?

    RegularExpressions und StringReplacements :-)
    Verwende keine Variablen, sondern Platzhalter.

    $what-ever = "hallo %1";
    print &generate ( $what-ever, $name );
    sub generate ($@) {
       my ($str, @placeholders) = @_;
       for ( my ($i=0; $i < (@placeholders-1); $i++ ) {
          $str =~ s/%$i/$placeholders[$i]/g;
       }
       return $str;
    }

    oder so ähnlich.

    Viele Grüsse

    Philipp