|Welcome to the Monastery
It really depends on which program is in control when you are trying to look up /images/image.png. Sometimes /images/image.png is a URL, and sometimes it is a file path, and the two are most definately different, even though they look the same.
Apache handles this internally, using a complex set of rules. /cgi-bin/ is one of these rules. Instead of looking in /var/www/cgi-bin/, Apache looks in /usr/lib/cgi-bin/ (under Debian). /images/ can be remapped in Apache too, perhaps leading to /var/images or something like that.
However once your perl script has started, path lookups are handled as normal Unix path lookups (using the system PATH variable, plus any changes depending on the users settings).
This is confusing, difficult, undocumented and something you have to learn when dealing with Unix. Or any operating system really. Web services are a confusing mash of programs, and figuring out which one has control at the critical moment is a big part of figuring out the bugs.