HTML-FillInForm-Lite

 view release on metacpan or  search on metacpan

README.md  view on Meta::CPAN


    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 call `new()` 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 `()`,
not `undef`.

# 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 with `HTML::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 &lt;gfuji(at)cpan.org>,
or through the RT [http://rt.cpan.org/](http://rt.cpan.org/).

# SEE ALSO

[HTML::FillInForm](https://metacpan.org/pod/HTML::FillInForm).

[HTML::FillInForm::Lite::JA](https://metacpan.org/pod/HTML::FillInForm::Lite::JA) - the document in Japanese.

[HTML::FillInForm::Lite::Compat](https://metacpan.org/pod/HTML::FillInForm::Lite::Compat) - HTML::FillInForm compatibility layer

# AUTHOR

Goro Fuji (藤 吾郎) &lt;gfuji(at)cpan.org>

# LICENSE AND COPYRIGHT

Copyright (c) 2008-2010 Goro Fuji, Some rights reserved.



( run in 0.369 second using v1.01-cache-2.11-cpan-0bd6704ced7 )