/usr/share/perl5/Cache/File/Handle.pm is in libcache-perl 2.09-1.
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 | =head1 NAME
Cache::File::Handle - wrapper for IO::File to use in Cache::File implementation
=head1 DESCRIPTION
This module implements a derived class of IO::File that allows callback on
close. It is for use by Cache::File and should not be used directly.
=cut
package Cache::File::Handle;
require 5.006;
use strict;
use warnings;
use IO::File;
our @ISA = qw(IO::File);
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my ($filename, $mode, $perms, $close_callback) = @_;
my $self = $class->SUPER::new($filename, $mode, $perms)
or return undef;
bless $self, $class;
*$self->{_cache_close_callback} = $close_callback;
return $self;
}
sub open {
my $self = shift;
my ($filename, $mode, $perms, $close_callback) = @_;
*$self->{_cache_close_callback} = $close_callback;
return $self->SUPER::open($filename, $mode, $perms);
}
sub close {
my $self = shift;
$self->flush;
*$self->{_cache_close_callback}->($self) if *$self->{_cache_close_callback};
delete *$self->{_cache_close_callback};
$self->SUPER::close(@_);
}
sub DESTROY {
my $self = shift;
*$self->{_cache_close_callback}->($self) if *$self->{_cache_close_callback};
#$self->SUPER::DESTROY();
}
1;
__END__
=head1 SEE ALSO
Cache::File
=head1 AUTHOR
Chris Leishman <chris@leishman.org>
Based on work by DeWitt Clinton <dewitt@unto.net>
=head1 COPYRIGHT
Copyright (C) 2003-2006 Chris Leishman. All Rights Reserved.
This module is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND,
either expressed or implied. This program is free software; you can
redistribute or modify it under the same terms as Perl itself.
$Id: Handle.pm,v 1.4 2006/01/31 15:23:58 caleishm Exp $
=cut
|