MooseX::Types::Signal - a type to represent valid UNIX or Perl signals


version 1.101932


Often times you want to send a configurable signal, but you don't want someone specifying SIGLOLCAT or 1234, because those aren't valid signals. Or are they?

With this module, you don't have to know; it will figure out what is valid and what isn't, and what names map to what numbers.

Just use the Signal type, and signal numbers are validated. Use the coercion, and you can refer to signals by name, too.

   package Example;
   use MooseX::Types::Signal qw(Signal);
   use Moose;

   has 'kill_with' => (
       is     => 'rw',
       isa    => Signal,
       coerce => 1,

   my $example = Example->new;

   # kill with SIGKILL

   # in any case, the reader C<kill_with> will always return 9, or
   # whatever your system thinks the number for SIGKILL is


MooseX::Types::Signal exports a type, Signal, that recognizes valid signals on your platform. The underlying type is a non-negative number, but there is a coercion from strings to numbers that recognizes signals by name.

There are also more restrictive types, PerlSignal and UnixSignal. UnixSignal only understands signals that are in your system's signal.h header file. PerlSignal only understands signals that are in Perl's %Config hash. Signal is either/or, with preference to UnixSignal over PerlSignal when coercing.


The exports Signal, UnixSignal, and PerlSignal are exported by Sub::Exporter, so you must explicitly request them, and you can use any of Sub::Exporter's magic when doing so. This is true in general of MooseX::Types modules.


Jonathan Rockway <>


This software is copyright (c) 2011 by Jonathan Rockway.

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