Array an einem Unterprogram übergeben?
Cruz
- perl
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
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
Doch es geht! Ich habe es mittlerweile ausprobiert.
Cruz
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
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
PS: in der subroutine findest Du dann die Array-Elemente in @_ wieder (nur falls dies Dir .. noch .. nicht bekannt ist)
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