sub launch_bgp_proc { # Runs Net::BGP::Process in a separate process # my $pid; my $sub = 'launch_bgp_proc()'; my $peer; #my $peer_ref; my %peers; my $bgp; if ( ! defined ( $pid = fork() ) ) { die( "${sub}: $@\n" ) } return $pid if ( $pid ); tie( %peers , 'IPC::Shareable', 'glue', \%shareable_opts); $bgp = Net::BGP::Process->new(); if ( defined $bgp ) { dbg( "${sub}: (Re-)Started BGP Process" ); } else { dbg( "${sub}: Net::BGP::Process: $!" ); } $peer = Net::BGP::Peer->new( Start => 1, ... [REMOVED TO HIDE IP ADRESSES] ResetCallback => \&bgp_callback_reset ); $peers{ 'peer' } = $peer; ...