|Come for the quick hacks, stay for the epiphanies.|
Re^4: <img> tag does not work in my perl/cgi codeby afoken (Chancellor)
|on Mar 24, 2010 at 13:56 UTC||Need Help??|
There ain't no PERL. The language is spelled "Perl", the script interpreter is spelled "perl".
Right-Click on the broken ("X") image and select "properties". Look at the image's URL. I could bet that you don't load the image from where you want to load it. With your code, and a typical CGI mapping set up on the web server, and no PATH_INFO in your URL (i.e. your URL ends with the script's name), the file LOGO.gif must reside in the same directory as your Perl CGI script. This is possible, but unusual. Most web servers don't allow static resources inside the CGI directories, and typically return an error page for those files. Copy the image's URL into the address line of a new browser window and look for yourself.
To fix that problem, either move the image into a directory from which static resources are served, and use a proper URL in the "src" attribute of the "img" tag; or switch from the dedicated CGI directory to CGIs inside the "normal" directories, detected by the file extensions. (For Apache: switch from "ScriptAlias" to "AddHandler cgi-script".)
Looking at your shebang line, it looks like you are running Windows, which can add some strange effects, too. But for this trivial case, Windows does not hurt.
Oh, and you don't have to write all HTML by yourself, the CGI module offers a nice syntax for creating HTML, and if you want to separate program logic (Perl) and presentation (HTML) -- which you really should, except for tiny throw-away scripts -- you should use a template engine like Template Toolkit.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)