my $shared_memory_segment_created = 0;
while (! $shared_memory_segment_created) {
$shared_memory_segment_created = eval {
tie %events, 'IPC::Shareable', {
key => _rand_shm_key(),
create => 1,
exclusive => 1,
protected => _shm_lock(),
mode => 0600,
destroy => 1
};
1;
};
}
####
eval {
require Devel::Trace::Subs;
import Devel::Trace::Subs qw(trace);
};
if (! defined &trace){
*trace = sub {};
}
##
##
my $thing_ok = eval {
do_something();
1;
};
if (! $thing_ok) {
# code in eval failed, so return was undef
if ($@ =~ /bad parameter/) {
# if the die statement died because of a bad param, warn the user
# otherwise carry on silently
warn $@;
}
}