http://qs321.pair.com?node_id=230652

You may already be aware that it is possible to prod CGI into emitting a reference to an external style sheet. For that you have to do the following...

use CGI qw/Link/;

... because the Link method is not exported by default. Once you have done this you can then say:

print $q->start_html({ -head=>Link({-rel=>'stylesheet', -type=>'text/css', -href=>'/foo.c +ss'}), });

And when you look at the HTML you'll see something like <link type="text/css" rel="stylesheet" href="/foo.css" />. I ran into the situation today where I had to include two stylesheets, and the following didn't work:

print $q->start_html({ -head=>Link([ {-rel=>'stylesheet', -type=>'text/css', -href=>'/foo.css'}, {-rel=>'stylesheet', -type=>'text/css', -href=>'/bar.css'}, ]), });

That is, the transitive array reference [ ] trick doesn't work for the Link method. After trying a couple of things out, it turns out that a brute force method below works fine.

This node is dedicated to wil. :)

print $q->start_html({ -head=>Link({-rel=>'stylesheet', -type=>'text/css', -href=>'/foo +.css'}) . Link({-rel=>'stylesheet', -type=>'text/css', -href=>'/bar.cs +s'}), });

Replies are listed 'Best First'.
Re: Using two external style sheets in a CGI.pm script
by parv (Parson) on Jan 29, 2003 at 01:16 UTC
    hey grinder, i had the exactly same problem but didn't bother to solve/workaround the problem. thanks for your work.