package Assert; use base 'Exporter'; require 5.006; # Derived from Carp::Assert # Copyright 2004 Crawford Currie # Copyright 2002 by Michael G Schwern export_to_level(1, @_); } else { my $caller = caller; *{$caller.'::ASSERT'} = \&noop; *{$caller.'::UNTAINTED'} = \&ASSERTS_OFF; *{$caller.'::DEBUG'} = \&ASSERTS_OFF; } use strict 'refs'; use warnings 'redefine'; } sub ASSERT ($;$) { unless ($_[0]) { require Carp; my $msg = 'Assertion'; $msg .= " ($_[1])" if defined $_[1]; $msg .= " failed!\n"; Carp::confess($msg); } return undef; } sub UNTAINTED($) { local (@_, $@, $^W) = @_; my $x; return eval { $x = $_[0], kill 0; 1 }; } 1;