Tommy: Parameterübergabe bei Funktionen

Hallo,
Anfängerfrage:
Wie übergibt man am besten mehrere Felder an eine subroutine, so dass man die geänderten Werte nachher im rufenden Programm zur Verfügung hat?
Die Subroutine gibt ja nur einen return-Wert zurück.

  1. Wie übergibt man am besten mehrere Felder an eine subroutine, so dass man die geänderten Werte nachher im rufenden Programm zur Verfügung hat?

    z.b. als Hash

    Die Subroutine gibt ja nur einen return-Wert zurück.

    wer sagt das?

    Struppi.

  2. Wie übergibt man am besten mehrere Felder an eine subroutine

    So, wie du sie brauchst, ich verwende gerne Hash(-Referenzen).

    so dass man die geänderten Werte nachher im rufenden Programm zur Verfügung hat?

    Gib die bearbeiteten Werte zurück. Beispiel:

    sub foo {  
      my $arg = shift;  
      $arg->{$_}++ foreach keys(%$arg);  
      return $arg;  
    }  
      
    my $hashref = foo( { boo => 1, baz => 2 } );
    

    Was genau hast du eigentlich vor?

    Siechfred

    --
    Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
  3. Wenn Referenzen nicht deine Welt sind:

    sub hmm{
    my $ist = shift; my $nur = shift;
    return ($ist, $nur);
    }

    my ($aber,$einearrayref) = &hmm("Das","auch");

    1. Wenn Referenzen nicht deine Welt sind:

      sub hmm{
      my $ist = shift; my $nur = shift;
      return ($ist, $nur);
      }

      my ($aber,$einearrayref) = &hmm("Das","auch");

      Danke,
      das war eine meinen Wissensstand angepasste Antwort, das Beispiel mit den Referenzen habe ich wirklich nicht verstanden.
      Daher die Bitte an alle Helfer:
      Wenn schon darauf hingewiesen wird "Anfängerfrage", dann bitte auch entsprechend reagieren.
      Ich nehme an, dass ich wenn ich mit Referenzen gearbeitet habe ich meine Frage auch hätte selbst beantworten können.

      1. Ich nehme an, dass ich wenn ich mit Referenzen gearbeitet habe ich meine Frage auch hätte selbst beantworten können.

        Das waren Hinweise wonach du in der Doku schauen musst, fertige Lösung sind bei einer so allgemeinen Frage meistens nicht sinnvoll, zumal der Code von Dennis nicht schön ist, du lernst so eher schlechten Stil und vor allem nicht die Doku kennen.

        perldoc (ist auch auf deiner Festplatte, wenn du Perl installiert hast, sogar im HTML-format)
        Dort findest du alles was du wissen musst um deine Lücken zu schliessen.

        Struppi.

      2. das war eine meinen Wissensstand angepasste Antwort, das Beispiel mit den Referenzen habe ich wirklich nicht verstanden.

        Dennis arbeitet genauso mit Referenzen, halt nur mit einer Referenz auf ein anonymes Array.

        Daher die Bitte an alle Helfer:
        Wenn schon darauf hingewiesen wird "Anfängerfrage", dann bitte auch entsprechend reagieren.

        Der Gebrauch von Referenzen gehört zum Basiswissen in Perl. Daher die Bitte an alle Programmier-Anfänger - also auch an dich: Bitte gepostete Codebeispiele anhand der Dokumentation versuchen nachzuvollziehen. Niemandem wird bei Nachfragen zum Verständnis der Kopf abgerissen.

        Ich nehme an, dass ich wenn ich mit Referenzen gearbeitet habe ich meine Frage auch hätte selbst beantworten können.

        Nein, nicht zwingend.

        Siechfred

        --
        Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.