Silly me - I forgot to import File::Touch. So when I added line 85 (as seen here) my script did not exit with an "Undefined subroutine" error (as perl -e 'touch("/tmp/test")' does) - no, it rudely crashes my entire friggin X server!
The question is: why? And what am I really calling when I call touch() if I didn't use File::Touch? (The next rev on that file linked above does use File::Touch - and, wonder of wonders, X doesn't crash.) But the question remains - why in the world does calling touch() without File::Touch being used cause X to crash? (This crash happens on two different machines, both running CentOS, both running NVidia display drivers.)
My program works now that I use File::Touch, the emergency is over - now I'm just mad - mad that something simple like that causes X to crash - with no rhyme or reason, no messages in /var/log/messages, /var/log/Xorg*.log - nothing. Like I said, this is more personal pride at figuring out why than a need to fix it - the program works, now I want to know why it broke to begin with. Any pointers, wise monks?