use strict; use diagnostics; use IPC::Shareable; use POSIX ":sys_wait_h"; my @data; my %options = ( create => 1, exclusive => 0, mode => 0644, destroy => 1, ); my $pid; my $item; if ( ! defined ( $pid = fork() ) ) { die( "Cannot fork!: $!" ) } elsif ( $pid == 0 ) { # Child #tie( @data, 'IPC::Shareable', 'glue', \%options ); sleep 1; for ( my $i=1; $i <= 10; $i++ ) { $item = shift( @data ); if ( ! defined $item ) { $item = '' } print "Child: $item\n"; } } else { # Parent tie( @data, 'IPC::Shareable', 'glue', \%options ); for ( my $i=1; $i <= 10; $i++ ) { push( @data, $i ); print "Parent: @data\n"; } waitpid( $pid, WNOHANG ); }