in reply to system call in crontab
... I can [get] my perl script to work in shell and crontab until I add this line...
What exactly did it do before you added that line? (That is, how do you know it worked, and was the addition of that one line really the only change you made?) And what result does it produce when you run it manually from your shell?
(Do you have any environment variables in your shell that affect the "feh" command? If so, you'll need to set those via %ENV in the perl script, because cron only gives you a minimal environment.)