Cano2: Array an Funktion übergeben

Hi,
Ich will in Perl ein Array und einen String an eine Funktion übergeben. Ich hab schon alles mögliche probiert und komm einfach nicht klar.
THX, Cano2

  1. Hallo auch

    Ich will in Perl ein Array und einen String an eine Funktion übergeben. Ich hab schon alles mögliche probiert und komm einfach nicht klar.

    Etwa so?
    &Schreiben(@Formul,$Zeit);

    Bei mir hat es auf jeden Fall funktioniert, versuch einfach mal die Variablen(Array)-Namen in der Funktion und im
    programm gleich zu nennen.
    Hoffentlich hilfts....
    Grüsse Stefan

    1. Hallo auch

      Ich will in Perl ein Array und einen String an eine Funktion übergeben. Ich hab schon alles mögliche probiert und komm einfach nicht klar.

      Etwa so?
      &Schreiben(@Formul,$Zeit);

      Das Unterprogramm sah etwa so aus...

      sub Schreiben(@Formul,$Zeit)
      {
      }

      Grüsse Stefan

      Und nochmals..... :-)

    2. Hallo,

      Etwa so?
      &Schreiben(@Formul,$Zeit);

      Bei mir hat es auf jeden Fall funktioniert, versuch einfach mal die Variablen(Array)-Namen in der Funktion und im
      programm gleich zu nennen.

      'Das glaub' ich nicht, Tim'.

      Wenn Du zuerst das Array und erst dann den Skalar übergibst, dann landet alles im Array und der Skalar geht leer aus.

      Entweder
      &Schreiben($Zeit,@Formul);
      oder eben mit Referenzen.

      Grüße
        Klaus

  2. Hallo Cano2,

    ich mach simmer so, dass wenn ich Hashes oder Arrays irgendwohin übergebe,
    ich einfach nur eine Refernz daruf weitereiche, die Ihrerseits wir ein Skalar angesprochen wird.

    Also quasi so :

    #Hauptprogramm
    use strict;

    my @ARRAY('3','4','5','23','3');
    my $string = "Text";

    &unterprogramm(@ARRAY,$string);

    mit @ARRAY wird die/eine Referenz auf den Array übergeben

    sub unterprogramm
    {

    my ($Referenz_auf_ARRAY,$string) = @_;

    die einzelnen Elemente sprichst du nun wie folgt an :

    besonderheit bei referenzen der 'Pfeil' ->

    print qq($Referenz_auf_ARRAY->[0]);
    print qq($Referenz_auf_ARRAY->[1]);

    usw.

    den übergebene String ganz 'normal'

    print $string;

    }

    Ich hoffe ich konnte dir damit weiterhelfen.

    Gruß
    Holger

    1. Hallo

      Nur zur Ergänzung:

      Die Referenz auf ein Array kann man natürlich auch wieder Dereferenzieren, dies steht sogar ansatzweise in SelfHTML: <../../tgcb.htm#a4>

      &unterprogramm(@ARRAY,$string);

      sub unterprogramm
         {
            my ($Referenz_auf_ARRAY,$string) = @_;

      @New_Array = @{$Referenz_auf_ARRAY};

      ...
         }
        
      Dies kann nützlich sein, falls man Array-Funktionen wie push(), pop() etc. verwenden will.

      Grüsse
      Tom