2016-05-23 13 views
-1

Ich versuche, zwei parallele verschiedene Perl-Skript auf Windows auszuführen. Ich bin ein Objekt im ersten Skript erstellen. Und ich möchte dieses Objekt in einem anderen Prozess verwenden.Gibt es eine Möglichkeit, das Objekt zwischen zwei verschiedenen Prozessen in Perl in Windows-Umgebung zu teilen?

+1

überprüfen Sie bitte diese [URL] (http://stackoverflow.com/help) es wird praktisch sein, Ihre Qualität des Inhalts zu heben –

+0

Lesen [perlipc] (http://www.perlmonks.org/bare/?node = Perlman% 3Aperlipc) – red0ct

Antwort

3

Die Antwort hängt davon ab, was Sie tun möchten und welches Objekt betroffen ist. Verbessere deine Frage mit mehr Details, um eine spezifischere Antwort zu erhalten.

Sie Ihr Objekt Dump könnte Data::Dumper oder JSON (oder viele andere Formate, aber das sind die am häufigsten) in einem Prozess, es dem anderen Prozess (über Disk, Datenbank, memcache, Netzwerk, IPC) übertragen und neu erstellen das Objekt im zweiten Prozess. Dieser wird für alle Objekte ohne externe Abhängigkeiten (wie Datenbankverbindungen, offene Dateien usw.) funktionieren. Versuchen Sie, dies für nicht selbst erstellte Module zu vermeiden, und seien Sie vorsichtig, wenn Sie dies mit Ihren eigenen Modulen tun.

Sie könnten auch shared memory verwenden (zum Beispiel Win32::MMF, aber ich habe es nie selbst versucht), während Sie Ihre eigenen Module schreiben, aber denken Sie daran, dass shared memory (sehr) langsam ist, zumindest unter Linux.

+2

Perl hat auch 'Storable', die Objektserialisierung ermöglicht. Dies ist nicht portierbar, aber es ist zumindest ein Teil der Kernverteilung (wo 'JSON' nicht ist). – Sobrique

+0

Ich konnte 'Win32 :: MMF' nie richtig installieren. Es baut gut, aber Perl stürzt mehrmals ab, um die Tests auszuführen. Ich habe verschiedene Strawberry und ActiveState Builds von Perl verwendet und jedes Mal das gleiche Ergebnis erzielt – Borodin