Portál AbcLinuxu, 13. května 2025 15:45
sub articles { while ( $odpoved = $dotaz->fetchrow_hashref() ) { $cgi->h2( $cgi->a({-href=>"$host/articles.pl?page=$odpoved->{'id'}"}, "$odpoved->{'title'}", ), ), $cgi->h3( "$odpoved->{'hlavicka'}", ), $cgi->a({-href=>"$host/articles.pl?page=$odpoved->{'id'}"}, "Pokracovat>>", ), } }(pripojeni a dotaz je jeste pred podprogramem, vcetne execute(); ) Problem je v tom, ze tahle konstrukce nevraci nic, ani chybovou hlasku. Pokud to vlozim primo do tela zpravy bez podprogramu, tak mi to zahlasi syntax error u while. Kdyz to podobne napisu do normalniho scriptu a ne CGI, spustim, tak jde vsechno v poradku. Googlil jsem celkem dlouho ale nic co by mi nejak pomohlo to vyresit. Ikdyz vim, ze jsem v tomhle docela lamka, tak i presto, nasla by se nejaka dobra duse co mi pomuze? :)
... $cgi->td({-valign=>"top",-width=>717,-height=>819,-align=>"left"}, &articles, ), ...kdyz misto &articles, vlozim while cyklus, tak to da SYNTAX ERROR na radku kde je while
&articles
by melo byt pole takze sub articles()
by mel vracet pole.
tvoje nic nevraci takze se vyhodnoti jako td({...}, []}
ps: comp.perl.beginners je na tyhle dotazy urcite lepsi ...
sub ... { my @retval; while (...) { push @retval, $cgi->h2 (), $cgi->h3, ...; } return @retval; }b) použi HTML::Template / Template::Toolkit ; popr Catalyst na všetko dohromady
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.