Ho un modulo che deve eseguire un controllo in un blocco BEGIN. Ciò impedisce all'utente di vedere un messaggio inutile lungo la linea (durante la fase di compilazione, visto qui in secondo BEGIN).Sopprime "BEGIN failed - compilation aborted at"
Il problema è che se muoio dentro l'INIZIO il messaggio che lancio viene sepolto dietro BEGIN failed--compilation aborted at
. Tuttavia preferisco lo die
allo exit 1
poiché sarebbe quindi intercettabile. Dovrei semplicemente usare exit 1
o c'è qualcosa che posso fare per sopprimere questo messaggio aggiuntivo?
#!/usr/bin/env perl
use strict;
use warnings;
BEGIN {
my $message = "Useful message, helping the user prevent Horrible Death";
if ($ENV{AUTOMATED_TESTING}) {
# prevent CPANtesters from filling my mailbox
print $message;
exit 0;
} else {
## appends: BEGIN failed--compilation aborted at
## which obscures the useful message
die $message;
## this mechanism means that the error is not trappable
#print $message;
#exit 1;
}
}
BEGIN {
die "Horrible Death with useless message.";
}
Grazie! Ora tutto quello che ottengo è: 'Alcuni moduli necessari mancano o devono essere aggiornati prima di configurare Alien :: GSL. Quei moduli sono: \t Sort :: Versions' –
Dovrei dire, che è quello che volevo! –