|
Packit Service |
44c065 |
package TieLC;
|
|
Packit Service |
44c065 |
|
|
Packit Service |
44c065 |
sub TIEHANDLE
|
|
Packit Service |
44c065 |
{
|
|
Packit Service |
44c065 |
my $class = shift;
|
|
Packit Service |
44c065 |
my $fh = \do { local *HANDLE};
|
|
Packit Service |
44c065 |
bless $fh,$class;
|
|
Packit Service |
44c065 |
$fh->OPEN(@_) if (@_);
|
|
Packit Service |
44c065 |
$fh->BINMODE(':utf8');
|
|
Packit Service |
44c065 |
return $fh;
|
|
Packit Service |
44c065 |
}
|
|
Packit Service |
44c065 |
|
|
Packit Service |
44c065 |
sub EOF { eof($_[0]) }
|
|
Packit Service |
44c065 |
sub TELL { tell($_[0]) }
|
|
Packit Service |
44c065 |
sub FILENO { fileno($_[0]) }
|
|
Packit Service |
44c065 |
sub SEEK { seek($_[0],$_[1],$_[2]) }
|
|
Packit Service |
44c065 |
sub CLOSE { close($_[0]) }
|
|
Packit Service |
44c065 |
sub BINMODE { binmode($_[0],$_[1]) }
|
|
Packit Service |
44c065 |
|
|
Packit Service |
44c065 |
sub OPEN
|
|
Packit Service |
44c065 |
{
|
|
Packit Service |
44c065 |
$_[0]->CLOSE if defined($_[0]->FILENO);
|
|
Packit Service |
44c065 |
@_ == 2 ? open($_[0], $_[1]) : open($_[0], $_[1], $_[2]);
|
|
Packit Service |
44c065 |
}
|
|
Packit Service |
44c065 |
|
|
Packit Service |
44c065 |
sub READ { read($_[0],$_[1],$_[2]) }
|
|
Packit Service |
44c065 |
sub READLINE { "hello world\n" }
|
|
Packit Service |
44c065 |
sub GETC { getc($_[0]) }
|
|
Packit Service |
44c065 |
|
|
Packit Service |
44c065 |
sub WRITE
|
|
Packit Service |
44c065 |
{
|
|
Packit Service |
44c065 |
my $fh = $_[0];
|
|
Packit Service |
44c065 |
print $fh substr($_[1],0,$_[2])
|
|
Packit Service |
44c065 |
}
|
|
Packit Service |
44c065 |
|
|
Packit Service |
44c065 |
sub PRINT {
|
|
Packit Service |
44c065 |
my ($self, @what) = @_;
|
|
Packit Service |
44c065 |
my $buf = lc join('', @what);
|
|
Packit Service |
44c065 |
$self->WRITE($buf, length($buf), 0);
|
|
Packit Service |
44c065 |
}
|
|
Packit Service |
44c065 |
|
|
Packit Service |
44c065 |
sub UNTIE { 1 }; # suppress warnings about references
|
|
Packit Service |
44c065 |
|
|
Packit Service |
44c065 |
1;
|