Initial Windows agent repository
This commit is contained in:
commit
a0db0c2e5b
10589 changed files with 3844063 additions and 0 deletions
71
OGP64/usr/share/perl5/5.40/Tie/StdHandle.pm
Normal file
71
OGP64/usr/share/perl5/5.40/Tie/StdHandle.pm
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
package Tie::StdHandle;
|
||||
|
||||
use strict;
|
||||
|
||||
use Tie::Handle;
|
||||
our @ISA = 'Tie::Handle';
|
||||
our $VERSION = '4.6';
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Tie::StdHandle - 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
|
||||
|
||||
The B<Tie::StdHandle> package provide most methods for file handles described
|
||||
in L<perltie> (the exceptions are C<UNTIE> and C<DESTROY>). It causes tied
|
||||
file handles to behave exactly like standard file handles and allow for
|
||||
selective overwriting of methods.
|
||||
|
||||
=cut
|
||||
|
||||
sub TIEHANDLE
|
||||
{
|
||||
my $class = shift;
|
||||
my $fh = \do { local *HANDLE};
|
||||
bless $fh,$class;
|
||||
$fh->OPEN(@_) if (@_);
|
||||
return $fh;
|
||||
}
|
||||
|
||||
sub EOF { eof($_[0]) }
|
||||
sub TELL { tell($_[0]) }
|
||||
sub FILENO { fileno($_[0]) }
|
||||
sub SEEK { seek($_[0],$_[1],$_[2]) }
|
||||
sub CLOSE { close($_[0]) }
|
||||
sub BINMODE { &CORE::binmode(shift, @_) }
|
||||
|
||||
sub OPEN
|
||||
{
|
||||
$_[0]->CLOSE if defined($_[0]->FILENO);
|
||||
@_ == 2 ? open($_[0], $_[1]) : open($_[0], $_[1], $_[2]);
|
||||
}
|
||||
|
||||
sub READ { &CORE::read(shift, \shift, @_) }
|
||||
sub READLINE { my $fh = $_[0]; <$fh> }
|
||||
sub GETC { getc($_[0]) }
|
||||
|
||||
sub WRITE
|
||||
{
|
||||
my $fh = $_[0];
|
||||
local $\; # don't print any line terminator
|
||||
print $fh substr($_[1], $_[3], $_[2]);
|
||||
}
|
||||
|
||||
|
||||
1;
|
||||
Loading…
Add table
Add a link
Reference in a new issue