in reply to deconstructing String::Iota - not worth one iota

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:

Problems you mentioned I agree with: