In my experience problems with running scripts from cron are invariably related to environment. Cron does not use the same shell or environment as a regular user. I would suggest implementing some error checking (this is a good idea any-way!) ie test for failure on your file open (as
has said) , use Strict and -w and in your cronjob redirect STDOUT and STDERR to a log so you can see what is happening ie.
If you are still having problems you will have collected some more information to help locate it :)