In Perl 5.6.0 if you passed in literal strings, you got an error about, "Modification of a read-only value attempted". Recopying @_ fixed that.
And the time when $s and $s.0 are different in boolean context is when $s is "0". So when you remove those two characters, you get a bug.
An example that shows the bug:
print map "$_\n", r("0a1", "b0", "0");