[perl] Shell - pipe

Pagina: 1
Acties:

  • Servowire
  • Registratie: September 2000
  • Laatst online: 22-08 11:33

Servowire

prutser:~#

Topicstarter
Hoi :)

Is het mogelijk om met Perl een soort pipe te hebben met een in Linux shell draaiend programma, en dit steeds opnieuw te "forken"

Situatie:

Programma word gestart op de server, en blijft draaien, maar het Perl script kan er wel steeds nieuwe opdrachten aan geven (commandline).

Ik kan het wel voor elkaar krijgen dat perl de output van een programma geeft, maar dit soort "forken" wil niet..

code:
1
$$self->printtoscreen("output is:\n" . `program`);


hierna moet het Perl script op input wachtten.... maar het programma "program" moet blijven draaien..

iemand een idee?

met papier mache kun je alles maken!!


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Ik geloof niet dat ik precies begrijp wat je bedoelt, maar ik weet wel dat het geen punt is om een pipe te openen. Iets van
code:
1
open ( stream, '<b>|</b>/usr/bin/mijnprogje' );

Ik weet niet of je daar wat aan hebt :?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Servowire
  • Registratie: September 2000
  • Laatst online: 22-08 11:33

Servowire

prutser:~#

Topicstarter
drm schreef op 05 December 2002 @ 11:08:
Ik geloof niet dat ik precies begrijp wat je bedoelt, maar ik weet wel dat het geen punt is om een pipe te openen. Iets van
code:
1
open ( stream, '<b>|</b>/usr/bin/mijnprogje' );

Ik weet niet of je daar wat aan hebt :?
Zoiets wil ik

1 - perl start programma
2 - Perl zegt: geef je invoer
3 - +user voert data in (tekst)
4 - Perl paast het door aan het programma, en geeft de output terug aan user

goto 2


Ik kan dit niet voor elkaar krijgen, want volgens mij kan dit ook niet eens

Dit werkt dus niet...
code:
1
$$self->printtoscreen("output is:\n" .  open ( stream, '|/usr/bin/mijnprogje' ));

[ Voor 20% gewijzigd door Servowire op 05-12-2002 12:55 ]

met papier mache kun je alles maken!!


  • Servowire
  • Registratie: September 2000
  • Laatst online: 22-08 11:33

Servowire

prutser:~#

Topicstarter
geen schopje..
maar... *aai aai* :*

met papier mache kun je alles maken!!


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 12:58
Perl ondersteund bidirectionele pipes; zie hiervoor de pipe functie in de Perl function reference. Dat is alleen een oplossing voor het invoer/uitvoer deel van je probleem trouwens.

Verwijderd

Servowire schreef op 05 december 2002 @ 11:18:
[...]

Dit werkt dus niet...
code:
1
$$self->printtoscreen("output is:\n" .  open ( stream, '|/usr/bin/mijnprogje' ));
een beetje research mag ook wel! open opent alleen maar een pipe naar je programma.....

http://www.perldoc.com/perl5.6/pod/func/open.html

kijk daar maar es naar
Pagina: 1