晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
| DIR:/proc/thread-self/root/proc/thread-self/root/usr/share/perl5/vendor_perl/Term/Size/ |
| Current File : //proc/thread-self/root/proc/thread-self/root/usr/share/perl5/vendor_perl/Term/Size/Perl.pm |
package Term::Size::Perl;
use strict;
require Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(chars pixels);
our $VERSION = '0.031';
=head1 NAME
Term::Size::Perl - Perl extension for retrieving terminal size (Perl version)
=head1 SYNOPSIS
use Term::Size::Perl;
($columns, $rows) = Term::Size::Perl::chars *STDOUT{IO};
($x, $y) = Term::Size::Perl::pixels;
=head1 DESCRIPTION
Yet another implementation of C<Term::Size>. Now
in pure Perl, with the exception of a C probe run
on build time.
=head2 FUNCTIONS
=over 4
=item B<chars>
($columns, $rows) = chars($h);
$columns = chars($h);
C<chars> returns the terminal size in units of characters
corresponding to the given filehandle C<$h>.
If the argument is omitted, C<*STDIN{IO}> is used.
In scalar context, it returns the terminal width.
=item B<pixels>
($x, $y) = pixels($h);
$x = pixels($h);
C<pixels> returns the terminal size in units of pixels
corresponding to the given filehandle C<$h>.
If the argument is omitted, C<*STDIN{IO}> is used.
In scalar context, it returns the terminal width.
Many systems with character-only terminals will return C<(0, 0)>.
=back
=head1 SEE ALSO
It all began with L<Term::Size> by Tim Goodwin. You may want to
have a look at:
L<Term::Size>
L<Term::Size::Win32>
L<Term::Size::ReadKey>
Please reports bugs via GitHub,
L<https://github.com/aferreira/cpan-Term-Size-Perl/issues>.
When reporting bugs, it may be helpful to attach the F<Params.pm> generated by
the probe at build time.
=head1 AUTHOR
Adirano Ferreira, E<lt>ferreira@cpan.orgE<gt>
=head1 COPYRIGHT AND LICENSE
Copyright (C) 2006-2007, 2017-2018 by Adriano Ferreira
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
require Term::Size::Perl::Params;
my %params = Term::Size::Perl::Params::params();
# ( row, col, x, y )
sub _winsize {
my $h = shift || *STDIN;
return unless -t $h;
my $sz = "\0" x $params{winsize}{sizeof};
ioctl($h, $params{TIOCGWINSZ}{value}, $sz)
or return;
return unpack $params{winsize}{mask}, $sz;
}
sub chars {
my @sz = _winsize(shift);
return unless @sz;
return @sz[1, 0] if wantarray;
return $sz[1];
}
sub pixels {
my @sz = _winsize(shift);
return unless @sz;
return @sz[2, 3] if wantarray;
return $sz[2];
}
1;
|