---
name: "Specio::Library::Builtins"
section: "3pm"
platform: "linux"
package: "perl-specio"
version: "0.53-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Specio::Library::Builtins"
---

# Specio::Library::Builtins(3pm)

Implements type constraint objects for Perl's built-in types

## NAME

Specio::Library::Builtins - Implements type constraint objects for Perl's built-in types

## VERSION

version 0.53

## DESCRIPTION

This library provides a set of types parallel to those provided by Moose.

The types are in the following hierarchy

```
  Item
      Bool
      Maybe (of `a)
      Undef
      Defined
          Value
              Str
                  Num
                      Int
                  ClassName
          Ref
              ScalarRef (of `a)
              ArrayRef (of `a)
              HashRef (of `a)
              CodeRef
              RegexpRef
              GlobRef
              FileHandle
              Object
```

### Item

Accepts any value

### Bool

Accepts a non-reference that is `"undef"`, an empty string, `0`, or `1`. It also accepts any object which overloads boolification.

### Maybe (of \`a)

A parameterizable type which accepts `"undef"` or the type ``"`a"``. If not parameterized this type will accept any value.

### Undef

Only accepts `"undef"`.

### Value

Accepts any non-reference value.

### Str

Accepts any non-reference value or an object which overloads stringification.

### Num

Accepts nearly the same values as `"Scalar::Util::looks_like_number"`, but does not accept numbers with leading or trailing spaces, infinities, or NaN. Also accepts an object which overloads numification.

### Int

Accepts any integer value, or an object which overloads numification and numifies to an integer.

### ClassName

Accepts any value which passes `"Str"` where the string is a loaded package.

### Ref

Accepts any reference.

### ScalarRef (of \`a)

Accepts a scalar reference or an object which overloads scalar dereferencing. If parameterized, the dereferenced value must be of type ``"`a"``.

### ArrayRef (of \`a)

Accepts a array reference or an object which overloads array dereferencing. If parameterized, the values in the arrayref must be of type ``"`a"``.

### HashRef (of \`a)

Accepts a hash reference or an object which overloads hash dereferencing. If parameterized, the values in the hashref must be of type ``"`a"``.

### CodeRef

Accepts a code (sub) reference or an object which overloads code dereferencing.

### RegexpRef

Accepts a regex object created by `"qr//"` or an object which overloads regex interpolation.

### GlobRef

Accepts a glob reference or an object which overloads glob dereferencing.

### FileHandle

Accepts a glob reference which is an open file handle, any `"IO::Handle"` Object or subclass, or an object which overloads glob dereferencing and returns a glob reference which is an open file handle.

### Object

Accepts any blessed object.

## SUPPORT

Bugs may be submitted at \<https://github.com/houseabsolute/Specio/issues\>.

## SOURCE

The source code repository for Specio can be found at \<https://github.com/houseabsolute/Specio\>.

## AUTHOR

Dave Rolsky \<autarch@urth.org\>

## COPYRIGHT AND LICENSE

This software is Copyright (c) 2012 - 2025 by Dave Rolsky.

This is free software, licensed under:

```
  The Artistic License 2.0 (GPL Compatible)
```

The full text of the license can be found in the *LICENSE* file included with this distribution.
