The standard method for calculating words for the purpose of finding WPM is counting all the characters and dividing by six. Why six? Because the average word is 5 characters long, plus a space.
I'm really no good at one-liners or golfing, but I quickly modified your code. It obtains the accuracy you're looking for. Tested on ActivePerl Build 629 (Perl v5.6.1).
#!perl
$x=time;
$letters=scalar(split//,<>)/6;
print $letters/(time-$x)*60;
Sarah
If Bill Gates can name a company after his "bedroom" problems, I can have a stupid sig that points it out.