The program appears to work for other users, so I'm guessing your file has extra characters (perhaps a space, perhaps a carriage return) at the end of the lines. This is causing a problem for you, because you're using the file like so:
/(.*) (.*)/. That means "zero or more characters, then a space, then zero or more characters". If your line is "ABCDEF 1 " (notice the space at the end), then $1 is "ABCDEF 1" and $2 is "". If the line is "ABCDEF 1\r" (where \r is a carriage return), then $1 is "ABCDEF" like you'd expect, but $2 is "1\r". Since you never print $2, you can't be sure!