this means the only way to trigger the behaviour on purpose is to pass undef as first parameter. API madness! [...] this behaviour of implicit $_ is not documented at all.
How can something that's not in the API (undocumented) be the basis of a claim of API madness?
I cannot imagine how dismantle is useful.
my @elements = split //, $s;
my $length = @elements;
could be written as
my ($length, @elements) = dismantle($s);
but then again, you can already write
my $length = my @elements = split //, $s;
or
my $length = my @elements = $s =~ /./sg;
since list assignment in scalar context returns the number of elements assigned.
Problems you didn't mention:
- trim and strim don't work when passed an empty string.
- trim and strim don't work when passed the string '0'.
- strim doesn't work if the $delim is more than one character long.
- strim could be written much better.
Problems you mentioned I agree with:
- Allowing undef for the first parameter is unclear, wordy and error-prone.
- Warnings usually provided by substr are not emitted.
- The trim function is badly named.
- The module is poorly named.
- strim doesn't properly convert the delimiter from text to a regex pattern.
- trim could be written much better.
- trim is exported by default.
- strim and dismantle aren't exported.
- The synopsis does does not conform to best practices.
- Badly formatted docs.
- Functions are of very limited usefulness. It's fine to write a module that has easy to implement functions, but not when they are harder to learn than the building blocks to build the functions in the first place.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.