diff options
author | Siep Kroonenberg <siepo@cybercomm.nl> | 2011-02-17 12:20:49 +0000 |
---|---|---|
committer | Siep Kroonenberg <siepo@cybercomm.nl> | 2011-02-17 12:20:49 +0000 |
commit | 316ee97c621496b0fe3267f57cce81bee44ca1e6 (patch) | |
tree | cb2cab1192b4f58a7971af19b213e980bceda4b4 /Master/tlpkg/tlperl/lib/Tie/Handle.pm | |
parent | cd0f87b5d39480d85ad9bd4ee37f520f75bed560 (diff) |
Moving old tlperl prior to committing new one
git-svn-id: svn://tug.org/texlive/trunk@21422 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlperl/lib/Tie/Handle.pm')
-rwxr-xr-x | Master/tlpkg/tlperl/lib/Tie/Handle.pm | 201 |
1 files changed, 0 insertions, 201 deletions
diff --git a/Master/tlpkg/tlperl/lib/Tie/Handle.pm b/Master/tlpkg/tlperl/lib/Tie/Handle.pm deleted file mode 100755 index 4e92f75a3d1..00000000000 --- a/Master/tlpkg/tlperl/lib/Tie/Handle.pm +++ /dev/null @@ -1,201 +0,0 @@ -package Tie::Handle; - -use 5.006_001; -our $VERSION = '4.2'; - -# Tie::StdHandle used to be inside Tie::Handle. For backwards compatibility -# loading Tie::Handle has to make Tie::StdHandle available. -use Tie::StdHandle; - -=head1 NAME - -Tie::Handle - base class definitions for tied handles - -=head1 SYNOPSIS - - package NewHandle; - require Tie::Handle; - - @ISA = qw(Tie::Handle); - - sub READ { ... } # Provide a needed method - sub TIEHANDLE { ... } # Overrides inherited method - - - package main; - - tie *FH, 'NewHandle'; - -=head1 DESCRIPTION - -This module provides some skeletal methods for handle-tying classes. See -L<perltie> for a list of the functions required in tying a handle to a package. -The basic B<Tie::Handle> package provides a C<new> method, as well as methods -C<TIEHANDLE>, C<PRINT>, C<PRINTF> and C<GETC>. - -For developers wishing to write their own tied-handle classes, the methods -are summarized below. The L<perltie> section not only documents these, but -has sample code as well: - -=over 4 - -=item TIEHANDLE classname, LIST - -The method invoked by the command C<tie *glob, classname>. Associates a new -glob instance with the specified class. C<LIST> would represent additional -arguments (along the lines of L<AnyDBM_File> and compatriots) needed to -complete the association. - -=item WRITE this, scalar, length, offset - -Write I<length> bytes of data from I<scalar> starting at I<offset>. - -=item PRINT this, LIST - -Print the values in I<LIST> - -=item PRINTF this, format, LIST - -Print the values in I<LIST> using I<format> - -=item READ this, scalar, length, offset - -Read I<length> bytes of data into I<scalar> starting at I<offset>. - -=item READLINE this - -Read a single line - -=item GETC this - -Get a single character - -=item CLOSE this - -Close the handle - -=item OPEN this, filename - -(Re-)open the handle - -=item BINMODE this - -Specify content is binary - -=item EOF this - -Test for end of file. - -=item TELL this - -Return position in the file. - -=item SEEK this, offset, whence - -Position the file. - -Test for end of file. - -=item DESTROY this - -Free the storage associated with the tied handle referenced by I<this>. -This is rarely needed, as Perl manages its memory quite well. But the -option exists, should a class wish to perform specific actions upon the -destruction of an instance. - -=back - -=head1 MORE INFORMATION - -The L<perltie> section contains an example of tying handles. - -=head1 COMPATIBILITY - -This version of Tie::Handle is neither related to nor compatible with -the Tie::Handle (3.0) module available on CPAN. It was due to an -accident that two modules with the same name appeared. The namespace -clash has been cleared in favor of this module that comes with the -perl core in September 2000 and accordingly the version number has -been bumped up to 4.0. - -=cut - -use Carp; -use warnings::register; - -sub new { - my $pkg = shift; - $pkg->TIEHANDLE(@_); -} - -# "Grandfather" the new, a la Tie::Hash - -sub TIEHANDLE { - my $pkg = shift; - if (defined &{"{$pkg}::new"}) { - warnings::warnif("WARNING: calling ${pkg}->new since ${pkg}->TIEHANDLE is missing"); - $pkg->new(@_); - } - else { - croak "$pkg doesn't define a TIEHANDLE method"; - } -} - -sub PRINT { - my $self = shift; - if($self->can('WRITE') != \&WRITE) { - my $buf = join(defined $, ? $, : "",@_); - $buf .= $\ if defined $\; - $self->WRITE($buf,length($buf),0); - } - else { - croak ref($self)," doesn't define a PRINT method"; - } -} - -sub PRINTF { - my $self = shift; - - if($self->can('WRITE') != \&WRITE) { - my $buf = sprintf(shift,@_); - $self->WRITE($buf,length($buf),0); - } - else { - croak ref($self)," doesn't define a PRINTF method"; - } -} - -sub READLINE { - my $pkg = ref $_[0]; - croak "$pkg doesn't define a READLINE method"; -} - -sub GETC { - my $self = shift; - - if($self->can('READ') != \&READ) { - my $buf; - $self->READ($buf,1); - return $buf; - } - else { - croak ref($self)," doesn't define a GETC method"; - } -} - -sub READ { - my $pkg = ref $_[0]; - croak "$pkg doesn't define a READ method"; -} - -sub WRITE { - my $pkg = ref $_[0]; - croak "$pkg doesn't define a WRITE method"; -} - -sub CLOSE { - my $pkg = ref $_[0]; - croak "$pkg doesn't define a CLOSE method"; -} - -1; |