-
-
21 Aug 2016 11:34:11 UTC
- Distribution: HTML-FillInForm-Lite
- Module version: 1.15
- Source (raw)
- Browse (raw)
- Changes
- Homepage
- How to Contribute
- Repository
- Issues
- Testers (2847 / 0 / 1)
- Kwalitee
Bus factor: 1- 98.31% Coverage
- License: perl_5
- Perl: v5.8.1
- Activity
24 month- Tools
- Download (35.63KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
and 5 contributors- Goro Fuji (藤 吾郎) <gfuji(at)cpan.org>
-
Fuji, Goro
-
tokuhirom
-
mono
-
Todd Rinaldo
- Dependencies
- none
- Reverse dependencies
- CPAN Testers List
- Dependency graph
- NAME
- VERSION
- SYNOPSIS
- DESCRIPTION
- FUNCTIONS
- METHODS
- DEPENDENCIES
- NOTES
- BUGS
- SEE ALSO
- AUTHOR
- LICENSE AND COPYRIGHT
NAME
HTML::FillInForm::Lite - Lightweight FillInForm module in Pure Perl
VERSION
The document describes HTML::FillInForm::Lite version 1.15
SYNOPSIS
use HTML::FillInForm::Lite; use CGI; my $q = CGI->new(); my $h = HTML::FillInForm::Lite->new(); $output = $h->fill(\$html, $q); $output = $h->fill(\@html, \%data); $output = $h->fill(\*HTML, \&my_param); $output = $h->fill('t.html', [$q, \%default]); # or as a class method with options $output = HTML::FillInForm::Lite->fill(\$html, $q, fill_password => 0, # it is default ignore_fields => ['foo', 'bar'], target => $form_id, ); # Moreover, it accepts any object as form data # (these classes come form Class::DBI's SYNOPSIS) my $artist = Music::Artist->insert({ id => 1, name => 'U2' }); $output = $h->fill(\$html, $artist); my $cd = Music::CD->retrieve(1); $output = $h->fill(\$html, $cd); # simple function interface use HTML::FillInForm::Lite qw(fillinform); # the same as HTML::FillInForm::Lite->fill(...) $output = fillinform(\$html, $q);
DESCRIPTION
This module fills in HTML forms with Perl data, which re-implements
HTML::FillInForm
using regexp-based parser, not usingHTML::Parser
.The difference in the parsers makes
HTML::FillInForm::Lite
about 2 times faster thanHTML::FillInForm
.FUNCTIONS
fillinform(source, form_data)
Simple interface to the
fill()
method, accepting only a string. If you pass a single argument to this function, it is interpreted as form_data, and returns a function that accepts source.my $fillinform = fillinform($query); $fillinform->($html); # the same as fillinform($html, $query)
This function is exportable.
METHODS
new(options...)
Creates
HTML::FillInForm::Lite
processor with options.There are several options. All the options are disabled when
undef
is supplied.Acceptable options are as follows:
- fill_password => bool
-
To enable passwords to be filled in, set the option true.
Note that the effect of the option is the same as that of
HTML::FillInForm
, but by defaultHTML::FillInForm::Lite
ignores password fields. - ignore_fields => array_ref_of_fields
-
To ignore some fields from filling.
- target => form_id
-
To fill in just the form identified by form_id.
- escape => bool | ref
-
If true is provided (or by default), values filled in text fields will be HTML-escaped, e.g.
<tag>
to be<tag>
.If the values are already HTML-escaped, set the option false.
You can supply a subroutine reference to escape the values.
Note that it is not implemented in
HTML::FillInForm
. - decode_entity => bool | ref
-
If true is provided , HTML entities in state fields (namely,
radio
,checkbox
andselect
) will be decoded, but normally it is not needed.You can also supply a subroutine reference to decode HTML entities.
Note that
HTML::FillInForm
always decodes HTML entities in state fields, but not supports this option. - layer => :iolayer
-
To read a file with :iolayer. It is used when a file name is supplied as source.
For example:
# To read a file encoded in UTF-8 $fif = HTML::FillInForm::Lite->new(layer => ':utf8'); $output = $fif->fill($utf8_file, $fdat); # To read a file encoded in EUC-JP $fif = HTML::FillInForm::Lite->new(layer => ':encoding(euc-jp)'); $output = $fif->fill($eucjp_file, $fdat);
Note that it is not implemented in
HTML::FillInForm
.
fill(source, form_data [, options...])
Fills in source with form_data. If source or form_data is not supplied, it will cause
die
.options are the same as
new()
's.You can use this method as a both class or instance method, but you make multiple calls to
fill()
with the same options, it is a little faster to callnew()
and store the instance.source may be a scalar reference, an array reference of strings, or a file name.
form_data may be a hash reference, an object with
param()
method, an object with accessors, a code reference, or an array reference of those above mentioned.If form_data is based on procedures (i.e. not a hash reference), the procedures will be called in the list context. Therefore, to leave some fields untouched, it must return a null list
()
, notundef
.DEPENDENCIES
Perl 5.8.1 or later.
NOTES
Compatibility with
HTML::FillInForm
This module implements only the new syntax of
HTML::FillInForm
version 2. However,HTML::FillInForm::Lite::Compat
provides an interface compatible withHTML::FillInForm
.Compatibility with legacy HTML
This module is designed to process XHTML 1.x.
And it also supporting a good part of HTML 4.x , but there are some limitations. First, it doesn't understand HTML-attributes that the name is omitted.
For example:
<INPUT TYPE=checkbox NAME=foo CHECKED> -- NG. <INPUT TYPE=checkbox NAME=foo CHECKED=checked> - OK, but obsolete. <input type="checkbox" name="foo" checked="checked" /> - OK, valid XHTML
Then, it always treats the values of attributes case-sensitively. In the example above, the value of
type
must be lower-case.Moreover, it doesn't recognize omitted closing tags, like:
<select name="foo"> <option>bar <option>baz </select>
When you can't get what you want, try to give your source to a HTML lint.
Comment handling
This module processes all the processable, not knowing comments nor something that shouldn't be processed.
It may cause problems. Suppose there is a code like:
<script> document.write("<input name='foo' />") </script>
HTML::FillInForm::Lite
will break the code:<script> document.write("<input name='foo' value="bar" />") </script>
To avoid such problems, you can use the
ignore_fields
option.BUGS
No bugs have been reported.
Please report any bug or feature request to <gfuji(at)cpan.org>, or through the RT http://rt.cpan.org/.
SEE ALSO
HTML::FillInForm::Lite::JA - the document in Japanese.
HTML::FillInForm::Lite::Compat - HTML::FillInForm compatibility layer
AUTHOR
Goro Fuji (藤 吾郎) <gfuji(at)cpan.org>
LICENSE AND COPYRIGHT
Copyright (c) 2008-2010 Goro Fuji, Some rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Module Install Instructions
To install HTML::FillInForm::Lite, copy and paste the appropriate command in to your terminal.
cpanm HTML::FillInForm::Lite
perl -MCPAN -e shell install HTML::FillInForm::Lite
For more information on module installation, please visit the detailed CPAN module installation guide.