I've been working on a new module (tentatively named Sub::Parms).

use Sub::Parms qw (:ignorecase :validate); sub some_method { MethodParms := $self, %args; my ($field_value, $another_field_value) = @args{'field_value','a +nother_field'}; } sub some_function { ParmsHash := %args; my ($field_value, $another_field_value) = @args{'field_value','a +nother_field'}; } sub _legal_thing { unless (defined ($_[0])) { return (0. 'Not defined'); } unless (int($_[0]) eq $_[0])) { return (0, 'Not an integer'); } return 1; } sub bind_parms_example { BindParms : ( my $handle := handle [required, is_defined, can=param]; my $thing := thing [optional, isa=CGI::Minimal]; my $another_thing := another [optional, type=SCALAR, validate=_leg +al_thing]; my $yathing := yathing [optional, is_defined]; my $defaulted := dthing [optional, default="help me"]; ) # ..... }

The problem is, it solves the same problem as a half-dozen other modules do: How do you simply, quickly and elegantly parse named parameters passed to a function/method?

I think my module brings something new and useful to the problem (why else would anyone ever write a module?): It provides clarity in code, is much faster (3 to 4 times) than any other module that solves the same problem and provides a simple way to turn off parameter validation assertions for a module in mature code to get even more performance out of it.

But is that enough to justify yet another module solving the same problem?

Or should I just file it in Acme::* for people's entertainment and edification?


In reply to When is it better to NOT release a new module? by snowhare

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.