c:\@Work\Perl\monks>perl -wMstrict -le "use Data::Dump qw(pp); ;; for my $str ('0,1,.5,0,1', '.5,,0,1,', ',,,,', '123', '',) { ;; my @ra = split ( ',' , $str, -1 ); my $spstr = join ',', @ra; printf qq{'$str' -> %s -> >$spstr< \n}, pp(\@ra); die qq{split/join not orthogonal: '$str' '$spstr'} unless $str eq $spstr; } " '0,1,.5,0,1' -> [0, 1, ".5", 0, 1] -> >0,1,.5,0,1< '.5,,0,1,' -> [".5", "", 0, 1, ""] -> >.5,,0,1,< ',,,,' -> ["", "", "", "", ""] -> >,,,,< '123' -> [123] -> >123< '' -> [] -> ><