sub initial_tie { my ($aref, $what, $cont) = @_; my @do = @$aref; if (defined $what) { $cont && (undef $cont) || ($cont = 1); @do = splice(@do, $what, $cont) } while (@do) { my $data = shift @do; my $cmd; $cmd = "tie($data->[0], 'IPC::Shareable', {key => '$data->[1]', create => $data->[2], mode => $data->[3], size => $data->[4], destroy => $data->[5]});"; $result = eval $cmd; if ($data->[6]++ > 3) { &Log("*** initial_tie giving up on $data->[0] ***"); } elsif (not defined $result) { # create if necessary $data->[2] = 1; push(@do, $data); } } }