2017-10-16 165 views
0
  • 我有一个脚本execute.pl它调用child.plsystem调用。
  • 我在execute.pl创造AppLogger对象
  • AppLogger是包装和我Scribe日志服务器
  • 现在,在这个AppLogger我建立我的抄写员 日志服务器的连接,并具有一个接口各种功能如sendlog将日志发送到服务器。父进程变量里面的子进程在Perl中

    execute.pl:

    use AppLogger; 
    use strict; 
    use warnings; 
    
    my $logger = new AppLogger; 
    system("perl child.pl") 
    

据我所知systemOS电话和child.pl将是完全地不同的过程,但仍然有一种方法,我可以访问内部child.pl $loggerAppLogger对象而不每次我想记录时重新创建一个连接对象。

+0

将变量作为参数传递并用'my $ var = shift;'或'my($ var1,$ var2 ...)= $ _;'捕获它们' –

+0

是的我需要访问父对象中的我的对象子进程 –

+0

您可以使用'eval'来代替'system'调用。但它可能不是一个好主意。 –

回答

2

system是围绕fork + exec + wait的包装。 exec取代在进程中执行的程序,包括其堆(内存)。