in reply to Are there corner cases I am missing
How about this:
... @all = split(/\./, $mystring); dosumption(@all); [download]
Assuming your script handling of "0" and "" as if it was undef was an accident