Schrift
[thread]497[/thread]

Andere servers. Skriptsprachen in Perl ausführen: Quasi als Wrapper

Leser: 1


<< |< 1 2 >| >> 14 Einträge, 2 Seiten
cbxk1xg
 2005-05-31 14:52
#4976 #4976
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Hallo Freunde der Sonne!

Ich schreibe gerade am Plugin Interface meines CMS. Das kann bisher auf Wunsch ein Plugin einbinden und mit diesem Daten austauschen. So weit so gut. - Und immer noch buggy.

Bisher funktioniert es nach dem Prinzip, daß mein Hostscript die Plugins mit "require" an der entsprechenden Stelle einbindet. Das geht natürlich nur mit Perl-Skripten die ähnlich wie Perl-Module aufgebaut sind. - Gibt es, abgesehen von LWP, eine Möglichkeit dies auch mit PHP-, Ruby- oder Python- Skripten zu machen?
Taulmarill
 2005-05-31 15:29
#4977 #4977
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
schau dir mal die inline module an. wenn du die librarys aber direkt einbinden willst, wirst du wohl auf parrot warten müssen
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
cbxk1xg
 2005-05-31 15:43
#4978 #4978
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Parrot klingt spannend aber nicht gerade einfach. ??? Die Inline-Module find ich irgendwie weniger toll. Gibt's echt keine andere Möglichkeit?
cbxk1xg
 2005-05-31 17:00
#4979 #4979
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Ich hatte gerade eine (hoffentlich geniale) Idee...

Ich nehme mir die Parameter, die ich an das fremde Skript (z.B. PHP) übergeben will und öffne dieses mit:
Code: (dl )
system ("/usr/bin/php /my/path/foo/bar/test.php?option1=test&option2=noch%20ein%20test");

Die Frage ist nur ob man das Ergebnis des Programms irgendwie zurück bekommt? Am besten über STIN.

Falls nicht könnte man beim Aufruf des Programms eine Session mitschicken, die alle Ergebnisse in eine Datei schreibt. Danach könnte man diese Datei über die Session finden, öffnen, parsen, auswerten, etc... Allerdings müßte das Hauptskript (das in Perl) so lange warten bis das andere Skript fertig ist. Sonst gäbe es die Datei noch nicht und der Versuch läuft ins leere.

Allerdings habe ich ein wenig Sorge wegen dem Aufruf SYSTEM. Je nachdem was in dem Skript steht, könnte das sehr böse enden.
Taulmarill
 2005-05-31 18:52
#4980 #4980
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
ich kenne php nicht, aber wenn das so funktioniert solltest du das nicht mit system sondern mit open ausführen, dann kannst du die ausgabe des programms über das filehandle auslesen.
achte auch auf injections wenn du werte aus html aufrufen und formularen in deine systemaufrufe einbindest.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
cbxk1xg
 2005-05-31 20:27
#4981 #4981
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Aber ich dachte, open gibt mir einfach nur den blanken INhalt der Datei wieder. Also sowas hier wäre doch Quatsch, oder?

Code: (dl )
1
2
3
4
5
my $PHPplugin = "/usr/bin/php /my/path/foo/bar/test.php?option1=test&option2=noch%20ein%20test";

open( DATA, "$PHPplugin" );
# irgendein Quark...
close( DATA );
ptk
 2005-05-31 22:43
#4982 #4982
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Da fehlt noch ein Pipe-Zeichen. Vor oder nach dem Dateinamen, kann ich mir nie merken :-)
renee
 2005-05-31 23:56
#4983 #4983
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du dem Skript etwas "schicken" willst, dann kommt das Pipe-Zeichen vor den Dateinamen und wenn Du die Ausgabe des Programms haben willst, dann danach...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
betterworld
 2005-06-01 00:57
#4984 #4984
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
[quote=ptk,31.05.2005, 20:43]Da fehlt noch ein Pipe-Zeichen. Vor oder nach dem Dateinamen, kann ich mir nie merken :-)[/quote]
Ich finde das eigentlich ganz kanonisch, denn es ist ja wie in der Shell:

Code: (dl )
1
2
3
4
5
6
7
# In Shell:
dmesg | sort # Pipe kommt nach dmesg, aber vor sort

# In Perl:
open IN, "dmesg |"; # Pipe kommt nach dmesg
open OUT, "| sort"; # Pipe kommt vor sort
print OUT <IN>

(Der Code soll nur das Prinzip veranschaulichen, und nicht etwa sinnvoll sein oder so.)
ptk
 2005-06-01 01:03
#4985 #4985
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Irrtum. "-|" und "|-" kann ich mir nicht merken.
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2005-05-31 14:52.