The parsing of the command line is a function of the shell, not of Perl. I don't know what shell you're using that treats commas in that way, but there's not much you can do about it in Perl.
When I run your script in tcsh or bash, where comma is not a special character, I get the output you expected.