HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/share/perl5/Apache/Session/Serialize/UUEncode.pm
#############################################################################
#
# Apache::Session::Serialize::UUEncode
# Serializes session objects using Storable and pack
# Copyright(c) 2000 Jeffrey William Baker (jwbaker@acm.org)
# Distribute under the Perl License
#
############################################################################

package Apache::Session::Serialize::UUEncode;

use strict;
use vars qw($VERSION);
use Storable qw(nfreeze thaw);

$VERSION = '1.01';

sub serialize {
    my $session = shift;
    
    $session->{serialized} = pack("u", nfreeze($session->{data}));
}

sub unserialize {
    my $session = shift;
    
    my $data = thaw(unpack("u", $session->{serialized}));
    die "Session could not be unserialized" unless defined $data;
    #Storable can return undef or die for different errors
    $session->{data} = $data;
}

1;

=pod

=head1 NAME

Apache::Session::Serialize::UUEncode - Use Storable and C<pack()>
to zip up persistent data

=head1 SYNOPSIS

 use Apache::Session::Serialize::UUEncode;

 $zipped = Apache::Session::Serialize::UUEncode::serialize($ref);
 $ref = Apache::Session::Serialize::UUEncode::unserialize($zipped);

=head1 DESCRIPTION

This module fulfills the serialization interface of Apache::Session. It
serializes the data in the session object by use of Storable's C<nfreeze()> and
C<thaw()> functions, and Perl's C<pack()> and C<unpack()>.  The serialized data
is ASCII text, suitable for storage in backing stores that don't handle binary
data gracefully, such as Postgres.

=head1 AUTHOR

This module was written by Jeffrey William Baker <jwbaker@acm.org>.

=head1 SEE ALSO

L<Apache::Session::Serialize::Storable>, L<Apache::Session::Serialize::Base64>,
L<Apache::Session>