Thomas Hofmann: Mehrdimensinales Array

Moin,

Kann mir jemand sagen wie man in Perl ein mehrdimensionales Array aufbaut und darauf zugreift? (Syntax)

Hätte gedacht das es so geht:

$Opern[0]=split(/,/,$Termine);

und der Zugriff auf die Felder dann

$Opern[0][0]=...

funktioniert aber nicht.

Im Voraus danke
Thomas

Ps. Habe mir drei 800 Seiten Schwarten Perl gekauft, aber in keinem dieser Sche... Bücher steht was darüber.

  1. Moin auch!

    Kann mir jemand sagen wie man in Perl ein mehrdimensionales Array aufbaut und darauf zugreift? (Syntax)

    Hätte gedacht das es so geht:

    $Opern[0]=split(/,/,$Termine);

    Um ein Array als Array-Element abzulegen, mußt die dessen
    Referenz nutzen:
    @array oder [ .., .., ..]

    In deinem Falle also
    $Opern[0]=[split(/,/,$Termine)];

    und der Zugriff auf die Felder dann

    $Opern[0][0]=...

    Das stimmt schon ...

    Ps. Habe mir drei 800 Seiten Schwarten Perl gekauft, aber in keinem dieser Sche... Bücher steht was darüber.

    Schau doch mal unter dem Stichwort "Referenzen" nach. Aus der Perl-Doku solltest Du Dir die
    Datei perlref mal näher anschauen.

    Jörk

  2. Hi,

    Kann mir jemand sagen wie man in Perl ein mehrdimensionales Array aufbaut und darauf zugreift? (Syntax)

    damit habe ich auch arge Probleme. Ich weiß nicht ganz, ob folgendes so gedacht ist, auf jeden Fall funktioniert es:

    @{$Opern[0]} = split(/,/,$termine);
    print $Opern[0][0];
    print $Opern[0][1];
    usw.

    Als ich eben mit
    print ($Opern[0][0]) . "<BR>\n";
    getestet habe, wurde das "<BR>\n" komplett ignoriert; also das Array of Array immer schön einzeln ausgeben :-)

    Cheatah

    1. Hi,

      @{$Opern[0]} = split(/,/,$termine);
      print $Opern[0][0];
      print $Opern[0][1];
      usw.

      Als ich eben mit
      print ($Opern[0][0]) . "<BR>\n";
      getestet habe, wurde das "<BR>\n" komplett ignoriert; also das Array of Array immer schön einzeln ausgeben :-)

      Warum gibst Du denn da auch Klammern mit an?

      Jörk

      1. Hi,

        Als ich eben mit
        print ($Opern[0][0]) . "<BR>\n";
        getestet habe, wurde das "<BR>\n" komplett ignoriert; also das Array of Array immer schön einzeln ausgeben :-)

        Warum gibst Du denn da auch Klammern mit an?

        weil es meistens ohne nicht klappt, z.B. bei print ($x+1) . "\n";

        Cheatah