The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

CGI::Pure - Common Gateway Interface Class.

SYNOPSIS

 use CGI::Pure;

 my $cgi = CGI::Pure->new(%parameters);
 $cgi->append_param('par', 'value');
 my @par_value = $cgi->param('par');
 $cgi->delete_param('par');
 $cgi->delete_all_params;
 my $query_string = $cgi->query_string;
 $cgi->upload('filename', '~/filename');
 my $mime = $cgi->upload_info('filename', 'mime');
 my $query_data = $cgi->query_data;

METHODS

new(%parameters)
 Constructor
  • disable_upload

     Disables file upload.
     Default value is 1.
  • init

     Initialization variable.
     May be:
     - CGI::Pure object.
     - Hash with params.
     - Query string.
     Default is undef.
  • par_sep

     Parameter separator.
     Default value is '&'.
     Possible values are '&' or ';'.
  • post_max

     Maximal post length.
     -1 means no limit.
     Default value is 102400kB
  • save_query_data

     Flag, that means saving query data.
     When is enable, is possible use query_data method.
     Default value is 0.
  • utf8

     Flag, that means utf8 CGI parameters handling.
     Default is 1.
append_param($param, [@values])
 Append param value.
 Returns all values for param.
clone($class)
 Clone class to my class.
delete_param($param)
 Delete param.
 Returns undef, when param doesn't exist.
 Returns 1, when param was deleted.
delete_all_params()
 Delete all params.
param([$param], [@values])
 Returns or sets parameters in CGI.
 params() returns all parameters name.
 params('param') returns parameter 'param' value.
 params('param', 'val1', 'val2') sets parameter 'param' to 'val1' and 'val2'
 values.
query_data()
 Gets query data from server.
 There is possible only for enabled 'save_data' flag.
query_string()
 Returns actual query string.
upload($filename, [$write_to])
 Upload file from tmp.
 upload() returns array of uploaded filenames.
 upload($filename) returns handler to uploaded filename.
 upload($filename, $write_to) uploads temporary '$filename' file to
 '$write_to' file.
upload_info($filename, [$info])
 Returns informations from uploaded files.
 upload_info() returns array of uploaded files.
 upload_info('filename') returns size of uploaded 'filename' file.
 upload_info('filename', 'mime') returns mime type of uploaded 'filename' file.

ERRORS

 new():
         400 Malformed multipart, no terminating boundary.
         400 No boundary supplied for multipart/form-data.
         405 Not Allowed - File uploads are disabled.
         413 Request entity too large: %s bytes on STDIN exceeds post_max !
         500 Bad read! wanted %s, got %s.
         500 IO::File can\'t create new temp_file.
         500 IO::File is not available %s.
         Bad parameter separator '%s'.
         From Class::Utils::set_params():
                 Unknown parameter '%s'.

 append_param():
         Parameter '%s' has bad value.

 upload():
         Cannot close file '%s': %s.
         Cannot write file '%s': %s.
         File uploads only work if you specify enctype="multipart/form-data" in your form.
         No filehandle for '%s'. Are uploads enabled (disable_upload = 0)? Is post_max big enough?
         No filename submitted for upload to '$writefile'.

 upload_info():
         File uploads only work if you specify enctype="multipart/form-data" in your form.

EXAMPLE1

 use strict;
 use warnings;

 use CGI::Pure;

 # Object.
 my $query_string = 'par1=val1;par1=val2;par2=value';
 my $cgi = CGI::Pure->new(
         'init' => $query_string,
 );
 foreach my $param_key ($cgi->param) {
         print "Param '$param_key': ".join(' ', $cgi->param($param_key))."\n";
 }

 # Output:
 # Param 'par1': val1 val2
 # Param 'par2': value

EXAMPLE2

 use strict;
 use warnings;

 use CGI::Pure;

 # Object.
 my $cgi = CGI::Pure->new;
 $cgi->param('par1', 'val1', 'val2');
 $cgi->param('par2', 'val3');
 $cgi->append_param('par2', 'val4');

 foreach my $param_key ($cgi->param) {
         print "Param '$param_key': ".join(' ', $cgi->param($param_key))."\n";
 }

 # Output:
 # Param 'par2': val3 val4
 # Param 'par1': val1 val2

DEPENDENCIES

Class::Utils, CGI::Deurl::XS, Error::Pure, URI::Escape.

SEE ALSO

CGI::Pure::Fast

Fast Common Gateway Interface Class for CGI::Pure.

CGI::Pure::Save

Common Gateway Interface Class for loading/saving object in file.

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© 2004-2021 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.09