Perl - 如何在另一个 Perl 脚本中使用在模块中创建的进程句柄
最终,我想做的是在模块中启动一个进程,并在另一个脚本中实时解析输出。
我想要做什么:
- 打开一个进程处理程序(IPC)
- 在外部使用此属性 模块
我尝试执行此操作并失败:
- 打开进程处理程序
- 将处理程序保存在模块的 attribute
- 使用模块外部的属性。
代码示例:
#module.pm
$self->{PROCESS_HANDLER};
sub doSomething{
...
open( $self->{PROCESS_HANDLER}, "run a .jar 2>&1 |" );
...
}
#perlScript.pl
my $module = new module(...);
...
$module->doSomething();
...
while( $module->{PROCESS_HANDLER} ){
...
}
Ultimately, what I want to do is to start a process in a module and parse the output in real time in another script.
What I want to do :
- Open a process Handler (IPC)
- Use this attribute outside of the
Module
How I'm trying to do it and fail :
- Open the process handler
- Save the handler in a module's
attribute - Use the attribute outside the module.
Code example :
#module.pm
$self->{PROCESS_HANDLER};
sub doSomething{
...
open( $self->{PROCESS_HANDLER}, "run a .jar 2>&1 |" );
...
}
#perlScript.pl
my $module = new module(...);
...
$module->doSomething();
...
while( $module->{PROCESS_HANDLER} ){
...
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一方面,您的 while 语句缺少 readline 迭代器:
或者
Your
while
statement is missing areadline
iterator, for one thing:or