NAME Devel::Assert - assertions for Perl >= 5.14 SYNOPSIS use Devel::Assert; # release mode, won't perform checks assert(3 > 2); use Devel::Assert 'on'; assert(3 > 2); # oops, check your math FEATURES * assert() call and all it's arguments are replaced with no-ops at compile time * not a source filter DESCRIPTION This module provides you with a C-like assert() function - it completely disappears when you don't want it. That's useful to force functions' contracts during development without sacrificing production performance. That's just like tests, but inside your code. sub get_url { my ($self, $url, $cb) = @_; assert length $url; assert(ref($cb) eq 'CODE'); ... } USAGE use Devel::Assert; # import 'assert' function, but doesn't enable it use Devel::Assert 'on'; # import 'assert' function and enable it use Devel::Assert 'global'; # import 'assert' function and enable it in all later 'use Devel::Assert' imports use Devel::Assert::Global; # the same, can be used as perl -MDevel::Assert::Global your_program.pl use Devel::Assert 'off'; # import 'assert' function, but doesn't enable it, even when in 'global' mode CHANGES FROM 0.04 This version significantly differs from 0.0x series. Main reason for that is to get rid of the Devel::Declare dependency and pass all parsing work to Perl itself instead of creating own statement parser. Not all features are available in this release yet. SEE ALSO assertions - uses code attributes Carp::Assert - requires annoying 'if DEBUG' suffix. PerlX::Assert - based on Devel::Declare AUTHOR Sergey Aleynikov COPYRIGHT Copyright (C) 2009, 2015 Sergey Aleynikov LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.