in reply to Amusing note on my own stupidity (longish)

(I've written this two days ago and only hit the "preview" button, not "create". What a nice coincidence when replying to an amusing note on stupidity :-)

I don't know the answer either for Perl 5 or Perl 6 (though assigning and check doesn't seem too wrong to me), but in Perl 6 you can use the rw-ness at least as a constraint in multi dispatch (if you think it's a wise idea):

multi sub trim($str) { # return modified value } multi sub trim($str is rw) { # modify in place }

(Not implemented yet :/ )

I also have one comment which is totally unrelated.

subtest 'trim' => sub { is("leading", trim(" leading"), "trim: leading");

Test::More says the usage is is($got, $expected, $test_name, so while everything works fine when the passes, you'll get a confusing message when it fails:

$ perl -we 'use Test::More tests => 1; is "leading", " leading", "trim +: leading"' 1..1 not ok 1 - trim: leading # Failed test 'trim: leading' # at -e line 1. # got: 'leading' # expected: ' leading' # Looks like you failed 1 test of 1.

Perl 6 - links to (nearly) everything that is Perl 6.