Cruz: Array an einem Unterprogram übergeben?

Hi Leute!

Kann man auch ein ganzes Array statt nur einer Variable an einem Unterprogram übergeben und mit @ARGV übernehmen?

etwa wie

system ("perl script.pl @array");

Cruz

  1. Hallo Cruz,

    Kann man auch ein ganzes Array statt nur einer Variable an einem Unterprogram übergeben und mit @ARGV übernehmen?

    etwa wie

    system ("perl script.pl @array");

    Nein, es sei denn, Du übergibst dem Script eine Datei in der diese Array definiert wird. Script.pl müßte dann dieses Argument als Dateiname nehmen, öffnen und verarbeiten usw.
    (CORBA für Perl, gibts das?)
    Oder den Inhalt des Arrays als @ARGV übergeben und im Script wieder zusammenbauen.
    Oder Du biegst das ganze Betriebssystem, bis es passt ;-)

    Grüße
    Christoph

    1. Doch es geht! Ich habe es mittlerweile ausprobiert.

      Cruz

      1. Hallo Cruz,

        Doch es geht! Ich habe es mittlerweile ausprobiert.

        Und wie genau? Würde mich mal ernsthaft interresieren (unter welchem OS), wundert mich doch sehr, jeder Perlprozess läuft doch in einem eigenen Speicher, da ist doch mit normalen Mitteln nicht dranzukommen?
        In Hoffnung auf aufschlußreiche Antwort
        Christoph
        PS:
        Grüße natürlich auch
        CZ

  2. Kann man auch ein ganzes Array statt nur einer Variable an einem Unterprogram übergeben und mit @ARGV übernehmen?

    etwa wie

    system ("perl script.pl @array");

    ich weiß nicht so genau, was du tun willt, aber das was du vorhast ist nicht sehr elegant.

    der °primitivste° weg ist: schreiben in script.pl folgendes:

    sub meine_routine { .. code .. }

    und im Hauptprogramm

    do script.pl; # lädt den code von
                  # script.pl in dein hauptprogramm
    ...
    meine_routine(@array);

    besser ist, lese in den Manpages (oder einem guten Perl Buch) nach über "use" und "require".

    Hilft das? - Ich hoffe.

    Ciao
      K@rl

    1. PS: in der subroutine findest Du dann die Array-Elemente in @_ wieder (nur falls dies Dir .. noch .. nicht bekannt ist)

      1. Nein, eigentlich will ich einen Script in ein bestehendes System einfügen. Das System soll bestimmte Werte in einen Array zusammenfassen uns diesen Array an einen neuen Script übergeben.

        Cruz