CGI::FormBuilder::Source - Source adapters for FormBuilder
# Define a source adapter
package CGI::FormBuilder::Source::Whatever;
sub new { my $self = shift; my $class = ref($self) || $self; my %opt = @_; return bless \%opt, $class; }
sub parse { my $self = shift; my $file = shift || $self->{source};
# open the file and parse it, or whatever my %formopt; open(F, "<$file") || die "Cant read $file: $!"; while (<F>) { # ... do stuff to the line ... $formopt{$fb_option} = $fb_value; }
# return hash of $form options return wantarray ? %formopt : \%formopt; }
This documentation describes the usage of FormBuilder sources, as well as how to write your own source adapter.An external source is invoked by using the source option to the top-level new() method:
my $form = CGI::FormBuilder->new( source => source_file.conf );This example points to a filename that contains a file following the CGI::FormBuilder::Source::File layout. Like with the template option, you can also specify source as a reference to a hash, allowing you to use other source adapters:
my $form = CGI::FormBuilder->new( fields => \@fields, source => { type => File, source => /path/to/source.conf, } );The type option specifies the name of the source adapter. Currently accepted types are:
File - CGI::FormBuilder::Source::FileIn addition to one of these types, you can also specify a complete package name, in which case that module will be autoloaded and its new() and parse() routines used. For example:
my $form = CGI::FormBuilder->new( fields => \@fields, source => { type => My::Source::Module, somefile => /path/to/source.conf, } );All other options besides type are passed to the constructor for that source module verbatim, so its up to you and/or the source module on how these additional options should be handled.
CGI::FormBuilder, CGI::FormBuilder::Source::File,
$Id: Source.pm,v 1.16 2006/02/24 01:42:29 nwiger Exp $
Copyright (c) 2000-2006 Nate Wiger <nate@wiger.org>. All Rights Reserved.This module is free software; you may copy this under the terms of the GNU General Public License, or the Artistic License, copies of which should have accompanied your Perl kit.
| perl v5.8.5 | CGI::FormBuilder::Source (3) | 2006-06-06 |