sub numbers { my ($class,$number) = @_; if ( /(\d+)/ ) { return ( $1, { msg => 'ok' } ); } else { return ( undef, { msg => 'numbers, please' } ); } } ... my ($age,$stuff) = Validate->numbers( ... ); unless ( $age ) { push @errors, $stuff->{msg}; }