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


in reply to Re: Style in CGI Header
in thread Style in CGI Header

So then would this work? I'm in a live environment, so I cannot just test it, it may break if I do it live...

my @cssFiles = (); push(@cssFiles, {'src' => "$_css_path"}); push(@cssFiles, {'src' => "$_css_path2"}); # Then in the start_html() this line: -style => {-code=> "$page_style", 'src'=>@cssFiles},
is that how it would work? It does not seem so, because the array has src = and then the -style field has 'src' = ...so seems like I have it wrong.

Can you tell me how to do that right?

Thanks,
Rich

Replies are listed 'Best First'.
Re^3: Style in CGI Header
by Anonymous Monk on Oct 01, 2014 at 01:20 UTC

    There are some kinds of changes where you won't know if they work until you try it on a test system... or in this case a live system... this isn't one of them. CGI is (still) in the Perl core, so this one is particularly easy to test locally.

    use CGI ':standard'; my @cssFiles = ("src1"); push @cssFiles, "src2"; print start_html(-style=>{-code=>"code",-src=>\@cssFiles}); __END__ ... <link rel="stylesheet" type="text/css" href="src1" /> <link rel="stylesheet" type="text/css" href="src2" /> <style type="text/css"> <!--/* <![CDATA[ */ code /* ]]> */--> </style> ...

    So that's a yes, frozenwithjoy's suggestion should work, provided you use an array reference (-src=>\@cssFiles, not -src=>@cssFiles).

    If you had a test system, even if it's not an exact mirror of the live system but at least can execute your code, may have saved you the ~20 hours wait on a solution...

Re^3: Style in CGI Header
by frozenwithjoy (Priest) on Oct 01, 2014 at 01:01 UTC

    Changing your code to follow my earlier suggestion would give something like this:

    my $cssFiles = []; push @{$cssFiles}, $_css_path; push @{$cssFiles}, $_css_path2; # Then in the start_html() this line: -style => { -code => $page_style, -src => $cssFiles },

    If you wanted to use an array instead of an array ref, you could try this:

    my @cssFiles; push @cssFiles, $_css_path; push @cssFiles, $_css_path2; # Then in the start_html() this line: -style => { -code => $page_style, -src => \@cssFiles },