App-Yabsm

 view release on metacpan or  search on metacpan

lib/App/Yabsm/Tools.pm  view on Meta::CPAN

    my $lower    = shift;
    my $upper    = shift;
    my $num_args = scalar @_;

    $lower = 0 if $lower eq '_';

    my $lower_ok = $lower <= $num_args;
    my $upper_ok = $upper eq '_' ? 1 : $upper >= $num_args;

    unless ($lower_ok && $upper_ok) {
        my $caller    = ( caller(1) )[3];
        my $error_msg = "yabsm: internal error: called '$caller' with $num_args args but it expects";
        my $range_msg;
        if    ($upper eq '_')    { $range_msg = "at least $lower args" }
        elsif ($lower == $upper) { $range_msg = "$lower args"          }
        else                     { $range_msg = "$lower-$upper args"   }
        confess("$error_msg $range_msg");
    }

    return 1;
}



( run in 0.258 second using v1.01-cache-2.11-cpan-a9ef4e587e4 )