Index index by Group index by Distribution index by Vendor index by creation date index by Name Mirrors Help Search

perl-Carp-Assert-0.22-1.5 RPM for noarch

From OpenSuSE Tumbleweed for noarch

Name: perl-Carp-Assert Distribution: openSUSE Tumbleweed
Version: 0.22 Vendor: openSUSE
Release: 1.5 Build date: Sun Mar 5 04:06:07 2023
Group: Unspecified Build host: reproducible
Size: 27680 Source RPM: perl-Carp-Assert-0.22-1.5.src.rpm
Packager: https://bugs.opensuse.org
Url: https://metacpan.org/release/Carp-Assert
Summary: Executable comments
    "We are ready for any unforseen event that may or may not
    occur."
        - Dan Quayle

Carp::Assert is intended for a purpose like the ANSI C library at
http://en.wikipedia.org/wiki/Assert.h. If you're already familiar with
assert.h, then you can probably skip this and go straight to the FUNCTIONS
section.

Assertions are the explicit expressions of your assumptions about the
reality your program is expected to deal with, and a declaration of those
which it is not. They are used to prevent your program from blissfully
processing garbage inputs (garbage in, garbage out becomes garbage in,
error out) and to tell you when you've produced garbage output. (If I was
going to be a cynic about Perl and the user nature, I'd say there are no
user inputs but garbage, and Perl produces nothing but...)

An assertion is used to prevent the impossible from being asked of your
code, or at least tell you when it does. For example:

    
    sub my_sqrt {
        my($num) = shift;

        
        assert($num >= 0);

        return sqrt $num;
    }

The assertion will warn you if a negative number was handed to your
subroutine, a reality the routine has no intention of dealing with.

An assertion should also be used as something of a reality check, to make
sure what your code just did really did happen:

    open(FILE, $filename) || die $!;
    @stuff = <FILE>;
    @stuff = do_something(@stuff);

    
    assert(@stuff > 0);

The assertion makes sure you have some @stuff at the end. Maybe the file
was empty, maybe do_something() returned an empty list... either way, the
assert() will give you a clue as to where the problem lies, rather than 50
lines down at when you wonder why your program isn't printing anything.

Since assertions are designed for debugging and will remove themelves from
production code, your assertions should be carefully crafted so as to not
have any side-effects, change any variables, or otherwise have any effect
on your program. Here is an example of a bad assertation:

    assert($error = 1 if $king ne 'Henry');  # Bad!

It sets an error flag which may then be used somewhere else in your
program. When you shut off your assertions with the $DEBUG flag, $error
will no longer be set.

Here's another example of *bad* use:

    assert($next_pres ne 'Dan Quayle' or goto Canada);  # Bad!

This assertion has the side effect of moving to Canada should it fail. This
is a very bad assertion since error handling should not be placed in an
assertion, nor should it have side-effects.

In short, an assertion is an executable comment. For instance, instead of
writing this

    
    $life = begin_life();

you'd replace the comment with an assertion which *enforces* the comment.

    $life = begin_life();
    assert( $life =~ /!$/ );

Provides

Requires

License

Artistic-1.0 OR GPL-1.0-or-later

Changelog

* Sun Mar 05 2023 Tina Müller <timueller+perl@suse.de>
  - updated to 0.22
    see /usr/share/doc/packages/perl-Carp-Assert/Changes
    0.22 2023-03-04
    - Removed shouldn't. As of perl 5.37.9 use of apostrophe
      as a package separator warns. As of 5.42 it will be removed.
      Really Schwern, you should have resisted the urge. :-)
    - Changed the Makefile.PL metadata to point at my repo, not
      the Schwern repo.
* Mon Apr 13 2015 coolo@suse.com
  - updated to 0.21
    see /usr/share/doc/packages/perl-Carp-Assert/Changes
* Thu Nov 17 2011 coolo@suse.com
  - regenerate with cpanspec 1.78.05
* Tue Aug 30 2011 andrea.turrini@gmail.com
  - standardized "Authors:" format in description of
    perl-Carp-Assert.spec
* Tue Nov 30 2010 coolo@novell.com
  - switch to perl_requires macro
* Tue Mar 09 2010 chris@computersalat.de
  - cleanup spec
    o dep perl-macro
    o Provides
* Sun Jan 10 2010 jengelh@medozas.de
  - enable parallel build
* Sat Jul 25 2009 chris@computersalat.de
  - spec mods
    * removed ^----------
    * removed ^#---------
* Sun Jun 28 2009 chris@computersalat.de
  - added perl-macros
    o autogen filelist with perl_gen_filelist
  - spec mods
    o fixed deps
* Tue Jan 09 2007 anicka@suse.cz
  - update to 0.20
    * The tests will no longer fail should the user have NDEBUG or
      PERL_NDEBUG environment variables set
    * Update the license link to point to the whole Perl license,
      not just the Artistic license.
    * Fixed installation for those who have Pod::Tests but pod2test
      is not in their PATH as some CPAN shell configurations do.

Files

/usr/lib/perl5/vendor_perl/5.38.2/Carp
/usr/lib/perl5/vendor_perl/5.38.2/Carp/Assert.pm
/usr/share/doc/packages/perl-Carp-Assert
/usr/share/doc/packages/perl-Carp-Assert/Changes
/usr/share/doc/packages/perl-Carp-Assert/README
/usr/share/man/man3/Carp::Assert.3pm.gz


Generated by rpm2html 1.8.1

Fabrice Bellet, Wed May 1 23:23:10 2024