This doesn't sound like a Perl issue, since the problem is with the URL format you are using (it might have been a Perl issue if you were using HTTP URLs, but there isn't any chance of that when reading from the filesystem.)
Note: I'm assuming that you copy/pasted the example image tag from the outputted source, or that it is being output as you expected. If not, you should check to make sure the Perl script is outputting what you think it should be.
The mozilla.org site includes file scheme test cases which should show you what formats Mozilla based browsers can cope with. Note that literal spaces are not allowed in URLs, and must be represented as %20.
The simplist solution to this issue is to forget about file scheme URLs and just access the images over HTTP. You'll have to do this if you want to publish the pages on the web anyway.