2017-10-16 167 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取代在進程中執行的程序,包括其堆(內存)。