# As a pragma:

use diagnostics;

use diagnostics -verbose;



enable  diagnostics;

disable diagnostics;



# As a program:

$ perl program 2>diag.out

$ splain [-v] [-p] diag.out

*****

use diagnostics;

*****

no diagnostics

*****

BEGIN { $diagnostics::PRETTY = 1 }

*****

use diagnostics -verbose

*****

use diagnostics;

print NOWHERE "nothing\n";

print STDERR "\n\tThis message should be unadorned.\n";

warn "\tThis is a user warning";

print "\nDIAGNOSTIC TESTER: Please enter a <CR> here: ";

my $a, $b = scalar <STDIN>;

print "\n";

print $x/$y;

*****

perl -w test.pl 2>test.out

./splain < test.out

*****

perl -w -Mdiagnostics test.pl

*****

use diagnostics; # checks entire compilation phase

print "\ntime for 1st bogus diags: SQUAWKINGS\n";

print BOGUS1 'nada';

print "done with 1st bogus\n";



disable diagnostics; # only turns off run-time warnings

print "\ntime for 2nd bogus: (squelched)\n";

print BOGUS2 'nada';

print "done with 2nd bogus\n";



enable diagnostics; # turns back on run-time warnings

print "\ntime for 3rd bogus: SQUAWKINGS\n";

print BOGUS3 'nada';

print "done with 3rd bogus\n";



disable diagnostics;

print "\ntime for 4th bogus: (squelched)\n";

print BOGUS4 'nada';

print "done with 4th bogus\n";

