NAME

CGI::Pure::Save - Common Gateway Interface Class for loading/saving object in file.

SYNOPSIS

use CGI::Pure::Save;

my $cgi = CGI::Pure::Save->new(%parameters);
$cgi->save($fh);
$cgi->load($fh);

METHODS

new(%parameters)
Constructor
  • cgi_pure

    CGI::Pure object.
load($fh)
Load parameters from file.
Return undef.
save($fh)
Save parameters to file.
Return undef.

ERRORS

new():
        CGI::Pure object doesn't define.
        From Class::Utils::set_params():
                Unknown parameter '%s'.

load()
        Invalid filehandle.

save()
        Invalid filehandle.

EXAMPLE1

use strict;
use warnings;

use CGI::Pure;
use CGI::Pure::Save;
use File::Temp qw(tempfile);
use Perl6::Slurp qw(slurp);

# Temporary file.
my ($tempfile_fh, $tempfile) = tempfile();

# Query string.
my $query_string = 'par1=val1;par1=val2;par2=value';

# CGI::Pure Object.
my $cgi = CGI::Pure->new(
	'init' => $query_string,
);

# CGI::Pure::Save object.
my $save = CGI::Pure::Save->new(
	'cgi_pure' => $cgi,
);

# Save.
$save->save($tempfile_fh);
close $tempfile_fh;

# Print file.
print slurp($tempfile);

# Clean temp file.
unlink $tempfile;

# Output:
# par1=val1
# par1=val2
# par2=value
# =

EXAMPLE2

use strict;
use warnings;

use CGI::Pure;
use CGI::Pure::Save;
use IO::Barf qw(barf);
use File::Temp qw(tempfile);
use File::Slurp qw(write_file);

# Temporary file.
my ($tempfile_fh, $tempfile) = tempfile();

# CGI::Pure data.
my $cgi_pure_data = <<'END';
par1=val1
par1=val2
par2=value
=
END

# Create file.
barf($tempfile_fh, $cgi_pure_data);
close $tempfile_fh;

# CGI::Pure Object.
my $cgi = CGI::Pure->new;

# CGI::Pure::Save object.
my $save = CGI::Pure::Save->new(
	'cgi_pure' => $cgi,
);

# Load.
open $tempfile_fh, '<', $tempfile;
$save->load($tempfile_fh);
close $tempfile_fh;

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

# Clean temp file.
unlink $tempfile;

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

DEPENDENCIES

Class::Utils, English, Error::Pure, Readonly, URI::Escape.

SEE ALSO

CGI::Pure

Common Gateway Interface Class.

CGI::Pure::Fast

Fast Common Gateway Interface Class for CGI::Pure.

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