Hi there,
As it happens I'm just working on the Serial module, as it seems there is definitely a bug in its processing of the arguments (Speed, Line, etc).
I'll be looking at it this weekend, so hope to have a new release to CPAN in a couple of days. I expect that will make a difference to your problem - the code you supply looks right to me.
regards,
oliver.