$| = 1; if ($pid = fork) { print "this is the parent $pid\n"; while ($prange ne '$A$3') { eval {$prange = $excel->ActiveCell->{Address};}; print "$@\n" if ($@); print "Active cell address $prange\n"; sleep 3; } } elsif (defined $pid) { print "this is the child $pid\n"; $msg = "When finished editing, close the file\."; Win32::MsgBox("$msg",vbOKOnly,$mbt); #$ans = ; exit; } else { print "fell through\n"; } #### this is the parent -2072 this is the child 0 Active cell address $C$23 Active cell address $C$23 #### Attempt to free non-existent shared string 'Range' at line 1. Free to wrong pool 1e5da80 not 223f90 at line 1. #### Attempt to free non-existent shared string 'Range' at line 1, line 1. Free to wrong pool 1e5dce0 not 223f90 at line 1, line 1. #### Undefined subroutine &Carp::shortness_heavy called at c:/Perl/lib/Carp.pm line 182. Free to wrong pool 1e5da30 not 223f90.