/usr/share/perl5/Spoon/Cookie.pm is in libspoon-perl 0.24-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | package Spoon::Cookie;
use Spoon::Base -Base;
use CGI;
field 'preferences';
field 'jar' => {};
field 'jar_opt' => {};
const expires => '+5y';
const path => '/';
const prefix => 'Spoon-';
const domain => '';
sub init {
$self->fetch();
}
sub write {
my ($cookie_name, $hash, $opt) = @_;
require Storable;
$self->jar->{$cookie_name} = $hash;
$self->jar_opt->{$cookie_name} = $opt if $opt;
}
sub read {
my $cookie_name = shift;
my $jar = $self->jar;
my $cookie = $jar->{$cookie_name};
$cookie ||= {};
return $cookie;
}
sub set_cookie_headers {
my $jar = $self->jar;
return () unless keys %$jar;
my $cookies = [];
@$cookies = map {
CGI::cookie(
-name => $self->prefix . $_,
-value => Storable::freeze($jar->{$_} || {}),
-path => $self->path,
-expires => $self->expires,
-domain => $self->domain,
%{$self->jar_opt->{$_} || {}},
);
} keys %$jar;
return @$cookies ? (-cookie => $cookies) : ();
}
sub fetch {
require Storable;
my $prefix = $self->prefix;
my $jar = {
map {
(my $key = $_) =~ s/^\Q$prefix\E//;
my $object = eval { Storable::thaw(CGI::cookie($_)) };
$@ ? () : ($key => $object)
}
grep { /^\Q$prefix\E/ } CGI::cookie()
};
$self->jar($jar);
}
__END__
=head1 NAME
Spoon::Cookie - Spoon Cookie Base Class
=head1 SYNOPSIS
=head1 DESCRIPTION
=head1 AUTHOR
Brian Ingerson <INGY@cpan.org>
=head1 COPYRIGHT
Copyright (c) 2004. Brian Ingerson. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See http://www.perl.com/perl/misc/Artistic.html
=cut
|