NAME HTML::StickyQuery - add sticky QUERY_STRING SYNOPSIS use HTML::StickyQuery; # create an object my $s = HTML::StickyQuery->new( regexp => '\.cgi$', abs => 0, keep_original => 1 ); print $s->sticky( file => 'foo.html', param => { SESSIONID => 'xxx' } ); or my $q = CGI->new; print $s->sticky( file => 'foo.html', param => $q ); DESCRIPTION this module is a sub class of the HTML::Parser manpage. parse HTML document and add QUERY_STRING to href attributes. Handy for maintaining state without cookie or something, transparently. if you want to use sticky CGI data via FORM. it is better to use the HTML::FillInForm manpage. CONSTRUCTOR new(%option) constructor of HTML::StickyQuery object. the options are below. abs add QUERY_STRING to absolute URI or not. (default: 0) override this option is obsolete. please use keep_original option. keep_original keep original QUERY_STRING or not. (default: 1) when this option is false. all old QUERY_STRING is removed. regexp regular expression of affected URI. (default: *none*) METHODS sticky(%options) parse HTML and add QUERY_STRING. return HTML document. the options are below. file specify the HTML file. scalarref specify the HTML document as scalarref. arrayref specify the HTML document as arrayref. param QUERY_STRING data. as hashref or object which implements *param* method. (eg. CGI, Apache::Request) EXAMPLES KEEP SESSION ID typical example of CGI application using session. use the Apache::Session>,L Session Test COUNT:

countup

session.cgi: #!perl use strict; use CGI; use HTML::Template; use HTML::StickyQuery; use Apache::Session::DB_File; my %session; my $cgi = CGI->new; # create session. my $id = $cgi->param('SESSIONID'); tie %session,'Apache::Session::DB_File',$id,{ FileName => './session.db', LockDirectory => './lock' }; $session{count} = $session{count} + 1; my $tmpl = HTML::Template->new(filename => './test.html'); $tmpl->param(count => $session{count}); my $output = $tmpl->output; # no COOKIE print $cgi->header; my $stq = HTML::StickyQuery->new; print $stq->sticky( scalarref => \$output, param => { SESSIONID => $session{_session_id} } ); KEEP SEARCH WORD IN HTML PAGING template file (simplified): Next 20 results search.cgi: #!perl use CGI; use HTML::StickyQuery; use HTML::Template; my $query = CGI->new; my $tmpl = HTML::Template->new(filename => 'search.html'); # do searching with $query and put results into $tmpl # ... # set next page offset $tmpl->param(nextpagee => $query->param('pagenum') + 1); my $output = $tmpl->output; my $sticky = HTML::StickyQuery->new(regexp => qr/search\.cgi$/); print $query->header, $sticky->sticky( scalarref => \$output, param => { search => $query->param('search') }, ); AUTHOR IKEBE Tomohiro SEE ALSO the HTML::Parser manpage the HTML::FillInForm manpage CREDITS Fixes,Bug Reports. Tatsuhiko Miyagawa COPYRIGHT Copyright(C) 2002 IKEBE Tomohiro All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.