Scalar::Util::Numeric - numeric tests for Perl scalars


Scalar-Util-Numeric documentation Contained in the Scalar-Util-Numeric distribution.

Index


Code Index:

NAME

Top

Scalar::Util::Numeric - numeric tests for Perl scalars

SYNOPSIS

Top

    use Scalar::Util::Numeric qw(isnum isint isfloat);

    foo($bar / 2) if (isnum $bar);

    if (isint $baz) {
        # ...
    } elsif (isfloat $baz) {
        # ...
    }

DESCRIPTION

Top

This module exports a number of wrappers around perl's builtin grok_number function, which returns the numeric type of its argument, or 0 if it isn't numeric.

TAGS

Top

All of the functions exported by Scalar::Util::Numeric can be imported by using the :all tag:

    use Scalar::Util::Numeric qw(:all);

EXPORTS

Top

isnum

    isnum ($val)

Returns a nonzero value (indicating the numeric type) if $val is a number.

The numeric type is a conjunction of the following flags:

    0x01  IS_NUMBER_IN_UV               (number within UV range - not necessarily an integer)
    0x02  IS_NUMBER_GREATER_THAN_UV_MAX (number is greater than UV_MAX)
    0x04  IS_NUMBER_NOT_INT             (saw . or E notation)
    0x08  IS_NUMBER_NEG                 (leading minus sign)
    0x10  IS_NUMBER_INFINITY            (Infinity)
    0x20  IS_NUMBER_NAN                 (NaN - not a number)

isint

isuv

isbig

isfloat

isneg

isinf

isnan

The following flavours of isnum (corresponding to the flags above) are also available:

    isint
    isuv
    isbig
    isfloat
    isneg
    isinf
    isnan

isint returns -1 if its operand is a negative integer, 1 if it's 0 or a positive integer, and 0 otherwise.

The others always return 1 or 0.

SEE ALSO

Top

* type in autobox
* Data::Types
* Params::Classify
* Params::Util
* Scalar::Util
* String::Numeric

VERSION

Top

0.22

AUTHORS

Top

* chocolateboy <chocolate@cpan.org>
* Michael G Schwern <schwern@pobox.com>

COPYRIGHT

Top


Scalar-Util-Numeric documentation Contained in the Scalar-Util-Numeric distribution.

package Scalar::Util::Numeric;

use 5.008000;

use strict;
use warnings;

use base qw(Exporter);
use XSLoader;

our $VERSION = '0.22';

our %EXPORT_TAGS = (
    'all' => [ qw(isbig isfloat isinf isint isnan isneg isnum isuv) ],
);

our @EXPORT_OK = ( map { @$_ } values %EXPORT_TAGS );

XSLoader::load(__PACKAGE__, $VERSION);

1;

__END__