alex: for schleife

Hi

Folgendes Problem

for (@arr1, @arr2, @arr3)
{
zu welchem Array gehört @_ ??

anweisungen...
}

Kann mir einer sagen, wie ich möglichst simpel
die zugehörigkeit von @_rauskriege?

Bye

  1. Hi,

    for (@arr1, @arr2, @arr3)
    {
    zu welchem Array gehört @_ ??

    zum Array bzw. zur Liste (@arr1, @arr2, @arr3), welches auch nichts anderes ist als ($arr1[0], $arr1[1], ..., $arr1[$#arr1], $arr2[0], $arr2[1], ..., $arr2[$#arr2], $arr3[0], $arr3[1], ..., $arr3[$#arr3]).

    Cheatah

    1. Hi,

      for (@arr1, @arr2, @arr3)
      {
      zu welchem Array gehört @_ ??

      zum Array bzw. zur Liste (@arr1, @arr2, @arr3), welches auch nichts anderes ist als ($arr1[0], $arr1[1], ..., $arr1[$#arr1], $arr2[0], $arr2[1], ..., $arr2[$#arr2], $arr3[0], $arr3[1], ..., $arr3[$#arr3]).

      Ähm, ich habe $_, welches durchläuft und will nun wissen zu welchem
      @_ das $_ gehört..

      Leider weiß ich immer noch nichts damit anzufangen...

      Please noch ein tip .-)

      thx
      alex

      1. Hi,

        Ähm, ich habe $_, welches durchläuft und will nun wissen zu welchem
        @_ das $_ gehört..

        es gibt nur _ein_ @_, welches alle von Dir angegebenen Arrays umfaßt. Wenn Du etwas anderes möchtest, solltest Du Dich mit Referenzen beschäftigen - siehe

        perldoc perlref
        perldoc perlreftut

        Cheatah

        1. Hi,

          Ähm, ich habe $_, welches durchläuft und will nun wissen zu welchem
          @_ das $_ gehört..

          es gibt nur _ein_ @_, welches alle von Dir angegebenen Arrays umfaßt. Wenn Du etwas anderes möchtest, solltest Du Dich mit Referenzen beschäftigen - siehe

          perldoc perlref
          perldoc perlreftut

          Achso, ich dachte @_ bezieht sich nur auf eines dieser arrays.
          Dann werde ich es anders machen...

          trotzdem thx

        2. Hi,

          Ähm, ich habe $_, welches durchläuft und will nun wissen zu welchem
          @_ das $_ gehört..

          es gibt nur _ein_ @_, welches alle von Dir angegebenen Arrays umfaßt. Wenn Du etwas anderes möchtest, solltest Du Dich mit Referenzen beschäftigen

          Aeh? Cheatah, was ist los, zu warm heute? @_ beinhaltet die Paraneter, die an eine sub uebergeben werden. $_ und @_ sind zwei voellig verschiedene Variablen, die zwar aehnlich aussehen, aber nichts miteinander zu tun haben. Und $_ durchlaeuft einfach nacheinander die Arrays @arr1, @arr2 und @arr3 und enthaelt immer ein Element aus dem Gesamtarray (@arr1, @arr2, @arr3). D.h., schreibt man die Arrays erstmal zu so einer Gesamtliste, dann gehen die ineinander auf; die urspruenglichen Grenzen kann man im Nachhinein nicht mehr feststellen. Wenn man mehrere Glaeser Wasser in eine Schuessel schuettet, kann man da auch keine Grenzen mehr erkennen. Im Gegensatz zum Wasser bleibt allerdings die Reihenfolge der Elemente in der Gesamtliste erhalten.

          So long

  2. Hallo Alex

    Kann mir einer sagen, wie ich möglichst simpel
    die zugehörigkeit von @_rauskriege?

    Wie schon vermutet wurde, meinst du vermutlich $_ und nicht @_.

    Ich bin leider nicht so topfit in diesen Sachen, aber vielleicht geht es, indem du vor der Schleife Referenzen auf die Einzelarrays definierst - also etwa:

    my $arr1Pointer = @arr1;
    my $arr2Pointer = @arr2;
    my $arr3Pointer = @arr3;

    Dann kannst du jederzeit, auch innerhalb der Schleife(?) mit dem Abfragen des Inhalts von $arr1Pointer (wo so ein Inhalt drin steht wie "ARRAY(0xb65b28)") herausfinden, um welchen der Arrays es sich handelt.

    viele Gruesse
      Stefan Muenz