---
name: "MooseX::Types::LoadableClass"
section: "3pm"
platform: "linux"
package: "libmoosex-types-loadableclass-perl"
version: "0.016-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/MooseX::Types::LoadableClass"
---

# MooseX::Types::LoadableClass(3pm)

ClassName type constraint with coercion to load the class.

## NAME

MooseX::Types::LoadableClass - ClassName type constraint with coercion to load the class.

## VERSION

version 0.016

## SYNOPSIS

```
    package MyClass;
    use Moose;
    use MooseX::Types::LoadableClass qw/ LoadableClass /;
    has foobar_class => (
        is => 'ro',
        required => 1,
        isa => LoadableClass,
    );
    MyClass->new(foobar_class => 'FooBar'); # FooBar.pm is loaded or an
                                            # exception is thrown.
```

## DESCRIPTION

```
    use Moose::Util::TypeConstraints;
    my $tc = subtype as ClassName;
    coerce $tc, from Str, via { Class::Load::load_class($_); $_ };
```

I've written those three lines of code quite a lot of times, in quite a lot of places.

Now I don't have to.

## TYPES EXPORTED

### "LoadableClass"

A normal class / package.

### "LoadableRole"

Like `"LoadableClass"`, except the loaded package must be a Moose::Role.

## SUPPORT

Bugs may be submitted through the RT bug tracker \<https://rt.cpan.org/Public/Dist/Display.html?Name=MooseX-Types-LoadableClass\> (or bug-MooseX-Types-LoadableClass@rt.cpan.org \<mailto:bug-MooseX-Types-LoadableClass@rt.cpan.org\>).

There is also a mailing list available for users of this distribution, at \<http://lists.perl.org/list/moose.html\>.

There is also an irc channel available for users of this distribution, at `"#moose"` on `"irc.perl.org"` \<irc://irc.perl.org/#moose\>.

## AUTHOR

Tomas Doran \<bobtfish@bobtfish.net\>

## CONTRIBUTORS

- •

  Karen Etheridge \<ether@cpan.org\>

- •

  Dagfinn Ilmari Mannsåker \<ilmari@ilmari.org\>

- •

  Florian Ragwitz \<rafl@debian.org\>

- •

  Graham Knop \<haarg@haarg.org\>

- •

  Gregory Oschwald \<goschwald@maxmind.com\>

- •

  Сергей Романов \<sromanov@cpan.org\>

## COPYRIGHT AND LICENCE

This software is copyright (c) 2010 by Infinity Interactive, Inc.

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