How do you open sitemap.pl in your browser?
You may find it of interest to run this
my $user = `whoami`;
my $groups = `groups $user`;
print "<br>I am running as $user in groups $groups\n";
I suspect that the user you get back is not what you expected. I also suspect it is the last 6 in 666 that is fixing your problem. You are setting up a file that anyone can write into. Knowing what groups you are in and the perl process is running you may be able to determine what groups you may have in common. Setting that file (or directory) to be a member of that common group may mean you dont need to let anyone write to that file, but limit it to only userids in that common group.