FunctionalPerl
view release on metacpan or search on metacpan
lib/FP/Repl/Repl.pm view on Meta::CPAN
# independently. Security feature or just overengineering?
# Ok, remember the ":p" setting; but why not use a lexical
# within `run`? Ok how long-lived are the repl objects, same
# duration? Then hm is the only reason for the object to be
# able to set up things explicitely first? Thus is it ok after
# all?)
my $r = $$self[Maybe_package] || $stack->package($frameno);
$r
};
my $oldsigint = $SIG{INT};
eval {
local $SIG{__DIE__};
# It seems this is the only way to make signal handlers work in
# both perl 5.6 and 5.8:
sigaction SIGINT,
POSIX::SigAction->new(__PACKAGE__ . '::__signalhandler')
or die "Error setting SIGINT handler: $!\n";
1
} || do {
lib/FP/Repl/Repl.pm view on Meta::CPAN
$term->addhistory($input);
#splice @history,0,@history-$$self[MaxHistLen] = ();
if ($$self[MaxHistLen] >= 0) { # <-prevent endless loop
shift @history while @history > $$self[MaxHistLen];
}
}
}
}
print $OUTPUT "\n";
$SIG{INT} = defined($oldsigint) ? $oldsigint : "DEFAULT";
# (Is there no other return path from sub run? should I use
# DESTROY objects for this? -> nope, no returns, but if
# exceptions not trapped it would fail)
}
# restore previous history, if any
if ($current_history) {
$clear_history->($term);
for (@$current_history) {
( run in 1.807 second using v1.01-cache-2.11-cpan-71847e10f99 )