For what it's worth, under 5.6 the last two examples do
result in undef.
Under 5.00503 (the only older version I had laying around) it
produces "one". You might want to wander through the changelogs
for 5.6 and see what might have fixed this if you're really curious.