WX :: Perl :: ProcessStream

Acesso io de processos externos via eventos
Baixe Agora

WX :: Perl :: ProcessStream Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Mark Dootson
  • Site do editor:
  • http://search.cpan.org/~mdootson/

WX :: Perl :: ProcessStream Tag


WX :: Perl :: ProcessStream Descrição

Wx :: Perl :: ProcessStream é um módulo Perl que fornece o STDOUT, STDERR e códigos de saída de forma assíncrona processos em execução através de eventos. Ele pode ser usado para longa duração ou processos que fornecem actualizações periódicas no estado via stdOut bloqueio. Simples IPC é possível através STDIN.Do não usar este módulo simplesmente para recolher a saída de outro processo. Por isso, é muito mais simples de fazer: meu ($ status, $ output) = Wx :: ExecuteStdout ( 'perl -e "qq print ($ _ \ n) para (@INC);"'); SYNOPSYS uso Wx :: Perl :: ProcessStream qw (: tudo); EVT_WXP_PROCESS_STREAM_STDOUT ($ self, \ evt_process_stdout); EVT_WXP_PROCESS_STREAM_STDERR ($ self, \ evt_process_stderr); EVT_WXP_PROCESS_STREAM_EXIT ($ self, \ evt_process_exit); EVT_WXP_PROCESS_STREAM_MAXLINES ($ self, \ evt_process_maxlines); my $ proc1 = Wx :: Perl :: ProcessStream :: Process-> new ( 'perl -e "qq print ($ _ \ n) para (@INC);"', 'MyName1', $ self); $ Proc1-> Executar; my $ command = 'executable.exe parm1 parm2 parm3' my $ proc2 = Wx :: Perl :: ProcessStream :: Process-> new ($ comando, 'MyName2', $ self) -> Run; meus @args = qw (executable.exe parm1 parm2 parm3); my $ PROC3 = Wx :: Perl :: ProcessStream :: Process-> new (\ @ args, 'MyName2', $ self); $ Proc3-> Executar; my $ PROC4 = Wx :: Perl :: ProcessStream :: Process-> new (\ @ args, 'MyName2', $ self, 'readline') -> Run; my $ PROC5 = Wx :: Perl :: ProcessStream :: Process-> new (\ @ args, 'MyName2', $ self); sub evt_process_stdout {my ($ self, $ event) = @_; $ Event-> Ignorar (1); my $ process = $ event-> GetProcess; my $ linha = $ event-> GetLine; if ($ linha eq 'algo que estamos à espera de') {$ Process-> WriteProcess ( 'uma mensagem para stdin'); $ Process-> CloseInput () if ($ finishedwriting); } ............ # para limpar o buffer meus @buffers = @ {$ Process-> GetStdOutBuffer}; } Sub evt_process_stderr {my ($ self, $ event) = @_; $ Event-> Ignorar (1); my $ process = $ event-> GetProcess; my $ linha = $ event-> GetLine; imprimir STDERR qq ($ linha \ n); # Para limpar o buffer meus @errors = @ {$ Process-> GetStdErrBuffer}; } Sub evt_process_exit {my ($ self, $ event) = @_; $ Event-> Ignorar (1); my $ process = $ event-> GetProcess; my $ linha = $ event-> GetLine; meus @buffers = @ {$ Process-> GetStdOutBuffer}; meus @errors = @ {$ Process-> GetStdErrBuffer}; my $ exitcode = $ Process-> GetExitCode; ............ $ Process-> Destruir; } sub evt_process_maxlines {my ($ self, $ event) = @_; my $ process = $ event-> GetProcess; ..... ruim processo $ Process-> Mate; } Homepage do produto


WX :: Perl :: ProcessStream Software Relacionado