# # Copyright (c) 2007 Christian Jaeger, copying@christianjaeger.ch # # This is free software, offered under either the same terms as perl 5 # or the terms of the Artistic License version 2 or the terms of the # MIT License (Expat version). See the file COPYING.md that came # bundled with this file. # =head1 NAME Chj::Unix::Signal =head1 SYNOPSIS =head1 DESCRIPTION =head1 NOTE This is alpha software! Read the status section in the package README or on the L. =cut package Chj::Unix::Signal; use strict; use warnings; use warnings FATAL => 'uninitialized'; use Chj::Class::Array -fields => -publica => 'number', ; sub new { my $class = shift; my $s = $class->SUPER::new; ($$s[Number]) = @_; $s } # how do we do reverse mapping? I did it already somewhere, I know. # and /bin/kill doesn't know all of them, bush eh bash is much better. # ah, man perlipc "Signals": our $inited = 0; our $signo; our $signame; sub MaybeInit { $inited ||= do { require Config; my $cfg = $Config::Config{sig_name}; defined $cfg or die "No sigs?"; my $i = 0; foreach my $name (split(' ', $cfg)) { $$signo{$name} = $i; $$signame[$i] = $name; $i++ } 1 } } sub as_string { my $s = shift; MaybeInit; my $maybe_str = $$signame[$$s[Number]]; defined $maybe_str ? $maybe_str : "" } end Chj::Class::Array;