Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

I need to get the HTML equivelent of this into my Perl CGI script. It has to be printed within the HTML HEAD tag of course. How would I do this?
<base href="$url">

Replies are listed 'Best First'.
Re: Base urls using Perl CGI
by wfsp (Abbot) on Apr 30, 2005 at 18:38 UTC
    See updated code below.

    #!/usr/bin/perl use CGI; my $q = new CGI; print $q -> header, $q -> start_html( -base => { 'href' => '$url' }), $q -> p( 'blah, blah' ), $q -> end_html;

    output:

    <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US"> <head> <title>Untitled Document</title> <base href="http://localhost/answer.pl" /> </head> <body> <p>blah, blah</p> </body> </html>

    Updated

    Added output

    Update 2

    I should have used strict and warnings to catch the undeclared $url (and not put it in quotes).

    Also the docs says:

    The argument -xbase allows you to provide an HREF for the <base> tag different from the current location

    #!/usr/bin/perl use strict; use warnings; use CGI; my $q = new CGI; my $url = 'docroot/'; print $q -> header, $q -> start_html( -title => 'Adding base to header', -base => 'true', -xbase => $url, ), $q -> p('blah, blah'), $q -> end_html;
Re: Base urls using Perl CGI
by JanneVee (Friar) on Apr 30, 2005 at 18:38 UTC
    Do you use CGI.pm to generate the HTML ? Update: Posted this when it the thread was empty.