#! perl use strict; use warnings; use Attribute::Handlers; sub assertion : ATTR{'CODE'}; no warnings; sub assert(&) : assertion { &{$_[0]}() } use warnings; use assertions 'foo'; assert { print "asserting 'foo'\n" }; { use assertions qw( foo bar ); assert { print "asserting 'foo' and 'bar'\n" }; } { use assertions qw( bar ); assert { print "asserting only 'bar'\n" }; } { use assertions '_ && bar'; assert { print "asserting 'foo' && 'bar'\n" }; } assert { print "asserting 'foo' again\n" }; #### 22:14 >perl 783_SoPW.pl asserting 'foo' asserting 'foo' and 'bar' asserting only 'bar' asserting 'foo' && 'bar' asserting 'foo' again 22:17 >