---
name: "Number::Range"
section: "3pm"
platform: "linux"
package: "libnumber-range-perl"
version: "0.12-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Number::Range"
---

# Number::Range(3pm)

Perl extension defining ranges of numbers and testing if a number is found in the range. You can also add and delete from this range.

## NAME

Number::Range - Perl extension defining ranges of numbers and testing if a number is found in the range. You can also add and delete from this range.

## SYNOPSIS

```
  use Number::Range;
  my $range = Number::Range->new("-10..10,12,100..120");
  if ($range->inrange("13")) {
    print "In range\n";
  } else {
    print "Not in range\n";
  }
  $range->addrange("200..300");
  $range->delrange("250..255");
  my $format = $range->range;
  # $format will be '-10..10,12,100..120,200..249,256..300'
```

## DESCRIPTION

Number::Range will take a description of a range, and then allow you to test on if a number falls within the range. You can also add and delete from the range.

### RANGE FORMAT

The format used for range is pretty straight forward. To separate sections of ranges it uses a `","` or whitespace. To create the range, it uses `".."` to do this, much like Perl's own binary `".."` range operator in list context.

### METHODS

- new

  ```
    $range = Number::Range->new("10..20","25..30","100");
  ```

  Creates the range object. It will accept any number of ranges as its input.

- addrange

  ```
    $range->addrange("22");
  ```

  This will also take any number of ranges as input and add them to the existing range.

- delrange

  ```
    $range->delrange("10");
  ```

  This will also take any number of ranges as input and delete them from the existing range.

- inrange

  ```
    $range->inrange("26"); my @results = $range->inrange("27","200");
  ```

  This will take one or more numbers and check if each of them exists in the range. If passed a list, and in array context, it will return a list of `0`'s or `1`'s, depending if that one was true or false in the list position. If in scalar context, it will return a single `1` if all are true, or a single `0` if one of them failed.

- range

  ```
    $format = $range->range; @numbers = $range->range;
  ```

  Depending on context this will return either an array of all the numbers found in the range, for list context. For scalar context it will return a range string.

- size

  ```
    $size = $range->size;
  ```

  This will return the total number of entries in the range.

- rangeList

  ```
    @rangeList = $range->rangeList;
  ```

  Returns the range as an array list where each element in the list is an array representing the start and stop points of a range. Single element ranges are returned as single element arrays with only on indice.

  \[\
     \[10,20\],\
     \[25,30\],\
     \[100\] \]

### EXPORT

None by default.

## SEE ALSO

Number::Tolerant, Tie::RangeHash, and Array::IntSpan for similar modules.

## AUTHOR

Larry Shatzer, Jr., \<larrysh@cpan.org\>

## COPYRIGHT AND LICENSE

Copyright (C) 2004-14 by Larry Shatzer, Jr.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
