#!/usr/bin/perl use strict; use warnings; package RadaException; my $limit = 10; use Exporter::Easy ( EXPORT => [ qw/&rada/ ] ); use Exception::Class ( 'SpatnyParametr', 'ZapornyParametr' => { isa => 'SpatnyParametr', }, 'VelkyParametr' => { isa => 'SpatnyParametr', fields => [ qw/limit/ ] }, ); sub rada { my $max = shift // 0; ZapornyParametr->throw('Parametr musi byt kladny') if $max <= 0; VelkyParametr->throw( message => 'Parametr je prilis velky', limit => $limit) if $max > $limit; local ($\, $,) = (qq/\n/, q/ /); print (1 .. $max); }; 1;