Torwächter: Was ist hier der Unterschied ?

Hallo zusammen,

Vielleicht kann mir einer sagen, was hier der Unterschied ist (wenn es einen gibt):

$msg{'002'} = "text";
oder
$msg002 = "text";

der Aufruf des ersten lautet:
$msg{'156'}

Ich möchte dies nutzen, um verschiedene Sprachen in meinem Script anzubieten. Ist es aber ratsam allen Text in eine Datei zu packen ?
(einzellne Elemente werden mit require geladen).

Greetings
Torwächter

  1. hi,

    also nummer eins: msg{'002'} = "text"
    hier wird ein sogenanntes hash angelegt.(Im prinzip ein Array was als schlüssel keine Zahlen hat sondern Wörter, wei in diesen fall 002)hat bei dir wenn es nciht gerade in einer Schleife steht nur einen eintrag.

    nummer 2 $msg002 = "text";

    ist eine ganz normale Variable (skalarwert);

    bye

    1. use Mosche;

      msg{'002'} = "text"
      hier wird ein sogenanntes hash angelegt.

      nummer 2 $msg002 = "text";

      ist eine ganz normale Variable (skalarwert);

      Wobei $msg{'002'} auch ein Skalar ist...

      use Tschoe qw(Matti);

  2. Hi,

    der Aufruf des ersten lautet:
    $msg{'156'}

    Du scheinst kein "use strict;" zu verwenden.

    Tätest Du dieses, dann müßtest Du jede einzelne
    Variable explizit deklarieren.
    Und das ist bei 156 Skalaren _etwas_ mehr
    Schreibarbeit als bei einem einzigen Hash ...

    Ich möchte dies nutzen, um verschiedene Sprachen
    in meinem Script anzubieten.

    Ich habe das auch mal so wie bei Dir beschrieben
    gelöst - und ich kann Dir nur davon abraten.

    Ist es aber ratsam allen Text in eine Datei zu
    packen ?

    Ja, ist es - weil dann jemand eine neue Sprache
    "implementieren" kann, ohne Perl zu können.

    Lesetip auch:
       http://aktuell.de.selfhtml.org/artikel/server/alt-http/#a5

    Viele Grüße
    <img src="http://www.schroepl.net/projekte/gzip_cnc/gzip_cnc.gif" border=0 alt=""> Michael

  3. Hi nochmal,

    Ist es aber ratsam allen Text in eine Datei zu packen ?

    ich merke gerade, daß ich hier ein Wort mitgelesen
    habe, das gar nicht dort stand, aber die Aussage
    komplett über den Haufen wirft.
    Nämlich das Wort "separate".

    Wenn jede einzelne Sprache über eine "Meldungsdatei"
    realisiert wird (pro Zeile Meldungsschlüssel, white-
    space und Meldungstext mit Einfügungen), _dann_ kann
    jemand eine neue Sprache realisieren, ohne dafür vom
    eigentlichen Perl-Programm jemals eine Zeile gesehen
    zu haben.

    Ich habe das vor gut 10 Jahren mal in PASCAL realisiert
    und einen Artikel darüber geschrieben:
       http://www.schroepl.net/pbm/software/united/_dokument/msg_file.htm
    Die Semantik läßt sich m. E. in Perl sogar eleganter
    implementieren als in PASCAL.

    Viele Grüße
    <img src="http://www.schroepl.net/projekte/gzip_cnc/gzip_cnc.gif" border=0 alt=""> Michael

    1. Tag Michael,

      Die Semantik läßt sich m. E. in Perl sogar eleganter
      implementieren als in PASCAL.

      Und *das* aus deinem Munde? Ich bin ueberrascht ;-))

      Gruesse,
       CK

      1. Hallo Christian,

        Die Semantik läßt sich m. E. in Perl sogar
        eleganter implementieren als in PASCAL.
        Und *das* aus deinem Munde? Ich bin ueberrascht ;-))

        Pascal hat keine Hashes, und Perl hat keine 64kb-Grenze.

        Viele Grüße
        <img src="http://www.schroepl.net/projekte/gzip_cnc/gzip_cnc.gif" border=0 alt=""> Michael