Oder man setzt (seit 5.8.1) die Environment-Variable PERL_SIGNALS auf "unsafe".
Es gibt durchaus Anwendungen, wo man noch immer unsichere Signale haben moechte. Bzw. funktioniert das folgende Skript mit Safe signals nicht mehr:
#!/usr/bin/perl
use sigtrap qw(stack-trace USR1);
use Inline C => 'DATA';
warn "kill -USR1 $$\n";
endlos();
_ _ DATA _ _
_ _ C _ _
void endlos() {
while(1) {
sleep(1);
}
}
Frueher konnte man das haengende Skript per USR1-Signal abbrechen und die Position ausgeben lassen. Jetzt geht das nicht mehr --- sigtrap waere also ein Kandidat, um mit POSIX::sigaction() umgeschrieben zu werden.