Adding the "\n" to get rid of traceback info is the least part of the problem and does not address the real situation that professional programmers will frequently encounter, requiring more to be done on encountering a fatal error that needs to be brought to user's rather than just an IT person's attention and which may need support some time after the fact.
<condition> or ProjectName::Die( $gddref, "message content" );
# in package ProjectName
sub Die
my $gddref = shift; # ref. to global data dictionary
my $content = shift;
my $UICB = $gddref -> { CB }{ UIOUT };
my $logref = $gddref -> { FH }{ LOGOUT };
&$UICB( "FATAL ERROR: $content" ); # which may or may not end up
# using die depending
# on the user interface
print $logref ( ProjFormatTime( localtime() ) . ": $content\n";
exit 1; # having met such particular messaging requirements
# die with or without "\n" is no longer an obvious idea.
}
which is more to type than:<code>
Die( "