亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? handle.pm

?? ARM上的如果你對底層感興趣
?? PM
字號:

package IO::Handle;

=head1 NAME

IO::Handle - supply object methods for I/O handles

=head1 SYNOPSIS

    use IO::Handle;

    $fh = new IO::Handle;
    if ($fh->fdopen(fileno(STDIN),"r")) {
        print $fh->getline;
        $fh->close;
    }

    $fh = new IO::Handle;
    if ($fh->fdopen(fileno(STDOUT),"w")) {
        $fh->print("Some text\n");
    }

    use IO::Handle '_IOLBF';
    $fh->setvbuf($buffer_var, _IOLBF, 1024);

    undef $fh;       # automatically closes the file if it's open

    autoflush STDOUT 1;

=head1 DESCRIPTION

C<IO::Handle> is the base class for all other IO handle classes. It is
not intended that objects of C<IO::Handle> would be created directly,
but instead C<IO::Handle> is inherited from by several other classes
in the IO hierarchy.

If you are reading this documentation, looking for a replacement for
the C<FileHandle> package, then I suggest you read the documentation
for C<IO::File>

A C<IO::Handle> object is a reference to a symbol (see the C<Symbol> package)

=head1 CONSTRUCTOR

=over 4

=item new ()

Creates a new C<IO::Handle> object.

=item new_from_fd ( FD, MODE )

Creates a C<IO::Handle> like C<new> does.
It requires two parameters, which are passed to the method C<fdopen>;
if the fdopen fails, the object is destroyed. Otherwise, it is returned
to the caller.

=back

=head1 METHODS

See L<perlfunc> for complete descriptions of each of the following
supported C<IO::Handle> methods, which are just front ends for the
corresponding built-in functions:

    close
    fileno
    getc
    eof
    read
    truncate
    stat
    print
    printf
    sysread
    syswrite

See L<perlvar> for complete descriptions of each of the following
supported C<IO::Handle> methods:

    autoflush
    output_field_separator
    output_record_separator
    input_record_separator
    input_line_number
    format_page_number
    format_lines_per_page
    format_lines_left
    format_name
    format_top_name
    format_line_break_characters
    format_formfeed
    format_write

Furthermore, for doing normal I/O you might need these:

=over 

=item $fh->fdopen ( FD, MODE )

C<fdopen> is like an ordinary C<open> except that its first parameter
is not a filename but rather a file handle name, a IO::Handle object,
or a file descriptor number.

=item $fh->opened

Returns true if the object is currently a valid file descriptor.

=item $fh->getline

This works like <$fh> described in L<perlop/"I/O Operators">
except that it's more readable and can be safely called in an
array context but still returns just one line.

=item $fh->getlines

This works like <$fh> when called in an array context to
read all the remaining lines in a file, except that it's more readable.
It will also croak() if accidentally called in a scalar context.

=item $fh->ungetc ( ORD )

Pushes a character with the given ordinal value back onto the given
handle's input stream.

=item $fh->write ( BUF, LEN [, OFFSET }\] )

This C<write> is like C<write> found in C, that is it is the
opposite of read. The wrapper for the perl C<write> function is
called C<format_write>.

=item $fh->flush

Flush the given handle's buffer.

=item $fh->error

Returns a true value if the given handle has experienced any errors
since it was opened or since the last call to C<clearerr>.

=item $fh->clearerr

Clear the given handle's error indicator.

=back

If the C functions setbuf() and/or setvbuf() are available, then
C<IO::Handle::setbuf> and C<IO::Handle::setvbuf> set the buffering
policy for an IO::Handle.  The calling sequences for the Perl functions
are the same as their C counterparts--including the constants C<_IOFBF>,
C<_IOLBF>, and C<_IONBF> for setvbuf()--except that the buffer parameter
specifies a scalar variable to use as a buffer.  WARNING: A variable
used as a buffer by C<setbuf> or C<setvbuf> must not be modified in any
way until the IO::Handle is closed or C<setbuf> or C<setvbuf> is called
again, or memory corruption may result!  Note that you need to import
the constants C<_IOFBF>, C<_IOLBF>, and C<_IONBF> explicitly.

Lastly, there is a special method for working under B<-T> and setuid/gid
scripts:

=over

=item $fh->untaint

Marks the object as taint-clean, and as such data read from it will also
be considered taint-clean. Note that this is a very trusting action to
take, and appropriate consideration for the data source and potential
vulnerability should be kept in mind.

=back

=head1 NOTE

A C<IO::Handle> object is a GLOB reference. Some modules that
inherit from C<IO::Handle> may want to keep object related variables
in the hash table part of the GLOB. In an attempt to prevent modules
trampling on each other I propose the that any such module should prefix
its variables with its own name separated by _'s. For example the IO::Socket
module keeps a C<timeout> variable in 'io_socket_timeout'.

=head1 SEE ALSO

L<perlfunc>, 
L<perlop/"I/O Operators">,
L<IO::File>

=head1 BUGS

Due to backwards compatibility, all filehandles resemble objects
of class C<IO::Handle>, or actually classes derived from that class.
They actually aren't.  Which means you can't derive your own 
class from C<IO::Handle> and inherit those methods.

=head1 HISTORY

Derived from FileHandle.pm by Graham Barr E<lt>F<bodg@tiuk.ti.com>E<gt>

=cut

require 5.000;
use strict;
use vars qw($VERSION $XS_VERSION @EXPORT_OK $AUTOLOAD @ISA);
use Carp;
use Symbol;
use SelectSaver;

require Exporter;
@ISA = qw(Exporter);

$VERSION = "1.1505";
$XS_VERSION = "1.15";

@EXPORT_OK = qw(
    autoflush
    output_field_separator
    output_record_separator
    input_record_separator
    input_line_number
    format_page_number
    format_lines_per_page
    format_lines_left
    format_name
    format_top_name
    format_line_break_characters
    format_formfeed
    format_write

    print
    printf
    getline
    getlines

    SEEK_SET
    SEEK_CUR
    SEEK_END
    _IOFBF
    _IOLBF
    _IONBF
);


################################################
## Interaction with the XS.
##

require DynaLoader;
@IO::ISA = qw(DynaLoader);
bootstrap IO $XS_VERSION;

sub AUTOLOAD {
    if ($AUTOLOAD =~ /::(_?[a-z])/) {
	$AutoLoader::AUTOLOAD = $AUTOLOAD;
	goto &AutoLoader::AUTOLOAD
    }
    my $constname = $AUTOLOAD;
    $constname =~ s/.*:://;
    my $val = constant($constname);
    defined $val or croak "$constname is not a valid IO::Handle macro";
    no strict 'refs';
    *$AUTOLOAD = sub { $val };
    goto &$AUTOLOAD;
}


################################################
## Constructors, destructors.
##

sub new {
    my $class = ref($_[0]) || $_[0] || "IO::Handle";
    @_ == 1 or croak "usage: new $class";
    my $fh = gensym;
    bless $fh, $class;
}

sub new_from_fd {
    my $class = ref($_[0]) || $_[0] || "IO::Handle";
    @_ == 3 or croak "usage: new_from_fd $class FD, MODE";
    my $fh = gensym;
    shift;
    IO::Handle::fdopen($fh, @_)
	or return undef;
    bless $fh, $class;
}

#
# There is no need for DESTROY to do anything, because when the
# last reference to an IO object is gone, Perl automatically
# closes its associated files (if any).  However, to avoid any
# attempts to autoload DESTROY, we here define it to do nothing.
#
sub DESTROY {}


################################################
## Open and close.
##

sub _open_mode_string {
    my ($mode) = @_;
    $mode =~ /^\+?(<|>>?)$/
      or $mode =~ s/^r(\+?)$/$1</
      or $mode =~ s/^w(\+?)$/$1>/
      or $mode =~ s/^a(\+?)$/$1>>/
      or croak "IO::Handle: bad open mode: $mode";
    $mode;
}

sub fdopen {
    @_ == 3 or croak 'usage: $fh->fdopen(FD, MODE)';
    my ($fh, $fd, $mode) = @_;
    local(*GLOB);

    if (ref($fd) && "".$fd =~ /GLOB\(/o) {
	# It's a glob reference; Alias it as we cannot get name of anon GLOBs
	my $n = qualify(*GLOB);
	*GLOB = *{*$fd};
	$fd =  $n;
    } elsif ($fd =~ m#^\d+$#) {
	# It's an FD number; prefix with "=".
	$fd = "=$fd";
    }

    open($fh, _open_mode_string($mode) . '&' . $fd)
	? $fh : undef;
}

sub close {
    @_ == 1 or croak 'usage: $fh->close()';
    my($fh) = @_;

    close($fh);
}

################################################
## Normal I/O functions.
##

# flock
# select

sub opened {
    @_ == 1 or croak 'usage: $fh->opened()';
    defined fileno($_[0]);
}

sub fileno {
    @_ == 1 or croak 'usage: $fh->fileno()';
    fileno($_[0]);
}

sub getc {
    @_ == 1 or croak 'usage: $fh->getc()';
    getc($_[0]);
}

sub eof {
    @_ == 1 or croak 'usage: $fh->eof()';
    eof($_[0]);
}

sub print {
    @_ or croak 'usage: $fh->print([ARGS])';
    my $this = shift;
    print $this @_;
}

sub printf {
    @_ >= 2 or croak 'usage: $fh->printf(FMT,[ARGS])';
    my $this = shift;
    printf $this @_;
}

sub getline {
    @_ == 1 or croak 'usage: $fh->getline';
    my $this = shift;
    return scalar <$this>;
} 

*gets = \&getline;  # deprecated

sub getlines {
    @_ == 1 or croak 'usage: $fh->getline()';
    wantarray or
	croak 'Can\'t call $fh->getlines in a scalar context, use $fh->getline';
    my $this = shift;
    return <$this>;
}

sub truncate {
    @_ == 2 or croak 'usage: $fh->truncate(LEN)';
    truncate($_[0], $_[1]);
}

sub read {
    @_ == 3 || @_ == 4 or croak '$fh->read(BUF, LEN [, OFFSET])';
    read($_[0], $_[1], $_[2], $_[3] || 0);
}

sub sysread {
    @_ == 3 || @_ == 4 or croak '$fh->sysread(BUF, LEN [, OFFSET])';
    sysread($_[0], $_[1], $_[2], $_[3] || 0);
}

sub write {
    @_ == 3 || @_ == 4 or croak '$fh->write(BUF, LEN [, OFFSET])';
    local($\) = "";
    print { $_[0] } substr($_[1], $_[3] || 0, $_[2]);
}

sub syswrite {
    @_ == 3 || @_ == 4 or croak '$fh->syswrite(BUF, LEN [, OFFSET])';
    syswrite($_[0], $_[1], $_[2], $_[3] || 0);
}

sub stat {
    @_ == 1 or croak 'usage: $fh->stat()';
    stat($_[0]);
}

################################################
## State modification functions.
##

sub autoflush {
    my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]);
    my $prev = $|;
    $| = @_ > 1 ? $_[1] : 1;
    $prev;
}

sub output_field_separator {
    my $prev = $,;
    $, = $_[1] if @_ > 1;
    $prev;
}

sub output_record_separator {
    my $prev = $\;
    $\ = $_[1] if @_ > 1;
    $prev;
}

sub input_record_separator {
    my $prev = $/;
    $/ = $_[1] if @_ > 1;
    $prev;
}

sub input_line_number {
    # localizing $. doesn't work as advertised.  grrrrrr.
    my $prev = $.;
    $. = $_[1] if @_ > 1;
    $prev;
}

sub format_page_number {
    my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]);
    my $prev = $%;
    $% = $_[1] if @_ > 1;
    $prev;
}

sub format_lines_per_page {
    my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]);
    my $prev = $=;
    $= = $_[1] if @_ > 1;
    $prev;
}

sub format_lines_left {
    my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]);
    my $prev = $-;
    $- = $_[1] if @_ > 1;
    $prev;
}

sub format_name {
    my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]);
    my $prev = $~;
    $~ = qualify($_[1], caller) if @_ > 1;
    $prev;
}

sub format_top_name {
    my $old = new SelectSaver qualify($_[0], caller) if ref($_[0]);
    my $prev = $^;
    $^ = qualify($_[1], caller) if @_ > 1;
    $prev;
}

sub format_line_break_characters {
    my $prev = $:;
    $: = $_[1] if @_ > 1;
    $prev;
}

sub format_formfeed {
    my $prev = $^L;
    $^L = $_[1] if @_ > 1;
    $prev;
}

sub formline {
    my $fh = shift;
    my $picture = shift;
    local($^A) = $^A;
    local($\) = "";
    formline($picture, @_);
    print $fh $^A;
}

sub format_write {
    @_ < 3 || croak 'usage: $fh->write( [FORMAT_NAME] )';
    if (@_ == 2) {
	my ($fh, $fmt) = @_;
	my $oldfmt = $fh->format_name($fmt);
	CORE::write($fh);
	$fh->format_name($oldfmt);
    } else {
	CORE::write($_[0]);
    }
}

sub fcntl {
    @_ == 3 || croak 'usage: $fh->fcntl( OP, VALUE );';
    my ($fh, $op, $val) = @_;
    my $r = fcntl($fh, $op, $val);
    defined $r && $r eq "0 but true" ? 0 : $r;
}

sub ioctl {
    @_ == 3 || croak 'usage: $fh->ioctl( OP, VALUE );';
    my ($fh, $op, $val) = @_;
    my $r = ioctl($fh, $op, $val);
    defined $r && $r eq "0 but true" ? 0 : $r;
}

1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色噜噜狠狠色综合欧洲selulu| 欧美国产乱子伦 | 日本一区二区三区dvd视频在线| 日韩一级在线观看| 日韩限制级电影在线观看| 91精品国产欧美一区二区成人 | 综合激情网...| 亚洲乱码中文字幕综合| 亚洲麻豆国产自偷在线| 亚洲人成影院在线观看| 亚洲精品写真福利| 亚洲 欧美综合在线网络| 偷拍日韩校园综合在线| 久久草av在线| 国产精品一区二区在线看| 成人免费视频网站在线观看| 不卡一区二区在线| 欧美午夜一区二区三区免费大片| 精品视频1区2区| 4438x亚洲最大成人网| 欧美成人欧美edvon| 久久久国产综合精品女国产盗摄| 中文字幕的久久| 亚洲女同一区二区| 日韩电影一区二区三区四区| 狠狠v欧美v日韩v亚洲ⅴ| 丁香一区二区三区| 色激情天天射综合网| 91麻豆精品国产无毒不卡在线观看| 日韩精品专区在线| 亚洲国产精品99久久久久久久久| 亚洲男人电影天堂| 日本亚洲最大的色成网站www| 久久国产精品免费| 91视频在线观看免费| 欧美日韩国产在线观看| 亚洲精品一区二区三区香蕉| 日本一区二区成人| 樱花草国产18久久久久| 免费欧美在线视频| 9l国产精品久久久久麻豆| 欧美日本一区二区| 国产午夜精品一区二区三区嫩草 | 成人免费毛片嘿嘿连载视频| 在线观看亚洲a| 精品成人一区二区| 亚洲精品乱码久久久久久 | 欧美日韩国产片| 久久久影视传媒| 一区二区三区高清| 韩国三级中文字幕hd久久精品| zzijzzij亚洲日本少妇熟睡| 欧美一区二区福利视频| 亚洲免费在线看| 精油按摩中文字幕久久| 色999日韩国产欧美一区二区| 日韩欧美一区二区三区在线| 亚洲女子a中天字幕| 激情av综合网| 欧美视频三区在线播放| 国产女主播一区| 秋霞国产午夜精品免费视频| 99久久精品一区| 久久嫩草精品久久久精品一| 性欧美大战久久久久久久久| 成人avav在线| 久久综合九色综合97婷婷| 亚洲综合清纯丝袜自拍| 国产成人精品网址| 欧美一区二区福利在线| 亚洲国产另类精品专区| 波波电影院一区二区三区| 亚洲精品一区二区三区在线观看| 亚洲mv在线观看| 一本高清dvd不卡在线观看| 精品日本一线二线三线不卡| 婷婷开心久久网| 日本韩国欧美一区| 久久精品水蜜桃av综合天堂| 欧美a一区二区| 欧美私模裸体表演在线观看| 中文字幕亚洲电影| 国产电影一区在线| 日韩精品一区国产麻豆| 日本视频一区二区| 欧美日韩亚洲国产综合| 亚洲精品一二三| 色域天天综合网| 亚洲欧洲日韩女同| av亚洲精华国产精华精华| 国产午夜精品久久久久久免费视| 久色婷婷小香蕉久久| 91精品国产色综合久久ai换脸| 亚洲男同性视频| 色婷婷综合久久久中文一区二区| 综合久久久久久| 色综合色狠狠综合色| 亚洲欧美日韩一区二区| 色综合天天性综合| 亚洲色图清纯唯美| 91麻豆国产精品久久| 亚洲特黄一级片| 色婷婷精品大在线视频| 亚洲最新视频在线观看| 在线观看日韩毛片| 性感美女久久精品| 欧美一区二区在线播放| 日韩国产高清影视| 91麻豆精品国产91久久久更新时间| 亚洲国产成人porn| 欧美探花视频资源| 午夜精品在线看| 337p亚洲精品色噜噜| 日韩专区中文字幕一区二区| 欧美日韩1234| 精品一区二区三区免费毛片爱| 久久亚洲一级片| 国产白丝精品91爽爽久久| 国产精品乱码妇女bbbb| 91在线观看高清| 亚洲成人黄色小说| 日韩精品资源二区在线| 国产精品自拍一区| 中文字幕视频一区| 欧美影院精品一区| 日韩1区2区3区| 久久九九全国免费| 99精品黄色片免费大全| 亚洲v精品v日韩v欧美v专区| 日韩女优电影在线观看| 国产精品一区二区在线播放| 亚洲日本乱码在线观看| 欧美色图在线观看| 久久99国产精品麻豆| 中文字幕免费一区| 91麻豆福利精品推荐| 日韩电影免费在线观看网站| 久久久久久久久久久电影| 色婷婷av一区二区三区大白胸 | 色综合网站在线| 奇米精品一区二区三区四区| 国产日产亚洲精品系列| 精品视频一区二区不卡| 狠狠色丁香婷婷综合| 亚洲一区二区影院| 久久久另类综合| 欧美性一区二区| 国产精品中文字幕一区二区三区| 亚洲欧美成aⅴ人在线观看| 日韩欧美一区在线| av午夜一区麻豆| 久久成人羞羞网站| 一区二区三区蜜桃网| 欧美va亚洲va国产综合| 91麻豆精东视频| 国产一区福利在线| 亚洲综合视频网| www国产精品av| 欧美三级视频在线| 波多野结衣精品在线| 蜜桃视频在线观看一区| 亚洲人成影院在线观看| xvideos.蜜桃一区二区| 欧美在线观看禁18| 成人网在线免费视频| 青娱乐精品在线视频| 亚洲乱码国产乱码精品精小说| 精品少妇一区二区三区日产乱码 | 国产福利电影一区二区三区| 一区二区久久久| 国产亚洲综合性久久久影院| 欧美日韩一区中文字幕| 不卡电影一区二区三区| 精品综合久久久久久8888| 亚洲综合视频在线| 中文字幕在线视频一区| 日韩美一区二区三区| 欧美日韩高清在线播放| av一区二区三区| 国模无码大尺度一区二区三区| 亚洲成在人线在线播放| 日韩毛片一二三区| 国产亚洲精久久久久久| 精品奇米国产一区二区三区| 欧美日韩免费一区二区三区视频| 91同城在线观看| 高清日韩电视剧大全免费| 麻豆一区二区99久久久久| 午夜欧美2019年伦理| 亚洲精品ww久久久久久p站| 亚洲国产成人自拍| 2021国产精品久久精品| 7777精品久久久大香线蕉| 91亚洲午夜精品久久久久久| 成人精品亚洲人成在线| 国产乱子伦视频一区二区三区| 免费在线一区观看| 亚洲福利一二三区| 亚洲一区二区三区自拍| 亚洲曰韩产成在线|