Ok, I've got it down to one problem right now, I need an explicit
package name for this:
foreach $key(keys %pages) {
print "<a href=\"$pages{$key}\">$key</a>\n";
}
It says I need it for $key but no matter where I put the my it won't
stop giving me that error. Where in that does the my go?
>
>
> Kyle --
>
> ...and then Kyle Babich said...
> %
> % Ok, I decided to make my test.cgi into a kind of refernce page for
when
> % I'm creating my site. There is some kind of problem with my hash.
> % Once again can someone explain to me what I'm doing wrong?
>
> As perl tells you, there are a few errors.
>
>
> %
> % Here is what I got from doing perl -Tcw in the shell:
> % > bash-2.05$ perl -Tcw test.cgi
> % > bash-2.05$ Scalar found where operator expected at test.cgi line
37,
> % near "print
> % > "$link's"
> % > > (Might be a runaway multi-line "" string starting on line 36)
> % > > (Do you need to predeclare print?)
>
> This is, in fact, something like that; you have a " in front of
foreach.
>
>
> % > > Bareword found where operator expected at test.cgi line 37,
> % near "$link's page
> % > "
> % > > (Missing operator before page?)
> % > > Global symbol "%pages" requires explicit package name at
test.cgi
> % line 32.
> % > > Global symbol "$link" requires explicit package name at
test.cgi
> % line 36.
> % > > syntax error at test.cgi line 37, near "print "$link's "
>
> As a result, this follows.
>
>
> % > bash: Scalar: command not found
> % > bash-2.05$ Global symbol "%pages" requires explicit package name
at
> % test.cgi lin
> % > e 37.
>
> Same thing here. So everything can be traced back to one point, as
far
> as I can tell :-)
>
>
> %
> % Here is the source:
> ...
> %
> % my $foreach = "foreach $link (links %pages) {
> % print "$link's page: $pages{$link}\n";
> % }";
>
> Here ya go. It looks like you're trying to save this foreach loop for
> later, probably to spit out the contents in your HTML, but your
quoting
> gets messed up. You have
>
> ... = "foreach ...
> print " ... more garbage that perl sees as OUTSIDE the quotes
>
> and so that won't work.
>
> Usually I'd just say that you need to escape the inside quotes or use
> different quotes (perhaps qw@@ or the like) but that will simply give
you
> the literal text of the foreach loop in your HTML output, which
probably
> isn't what you want.
>
> It's still early :-) and I don't see an elegant way of doing this
through
> my pre-Cheerios fog. You could, though, try something like
>
> my foreach = "" ;
> foreach $link (keys %pages) # you meant this instead of (links %
pages), no?
> {
> foreach =. "$link's page: $pages{$link}\n"
> }
>
> to iterate through your links and add the text you want to a $foreach
> variable, which ou can then spit out later. It feels like there
should
> be a less clunky way, but other than breaking the HTML section into
two
> or more here docs I don't see it. Perhaps one of the other wizards
will
> come up with something prettier :-)
>
>
> HTH & HAND
>
> :-D
> --
> David T-G * It's easier to fight for one's
principles
> (play) [EMAIL PROTECTED] * than to live up to them. -- fortune
cookie
> (work) [EMAIL PROTECTED]
> http://www.justpickone.org/davidtg/ Shpx gur Pbzzhavpngvbaf
Qrprapl Npg!
>
>
>
--
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]