晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /usr/share/doc/perl-Test-Simple/t/lib/Test/Builder/ |
Upload File : |
package Test::Builder::NoOutput;
use strict;
use warnings;
use Symbol qw(gensym);
use base qw(Test::Builder);
=head1 NAME
Test::Builder::NoOutput - A subclass of Test::Builder which prints nothing
=head1 SYNOPSIS
use Test::Builder::NoOutput;
my $tb = Test::Builder::NoOutput->new;
...test as normal...
my $output = $tb->read;
=head1 DESCRIPTION
This is a subclass of Test::Builder which traps all its output.
It is mostly useful for testing Test::Builder.
=head3 read
my $all_output = $tb->read;
my $output = $tb->read($stream);
Returns all the output (including failure and todo output) collected
so far. It is destructive, each call to read clears the output
buffer.
If $stream is given it will return just the output from that stream.
$stream's are...
out output()
err failure_output()
todo todo_output()
all all outputs
Defaults to 'all'.
=cut
my $Test = __PACKAGE__->new;
sub create {
my $class = shift;
my $self = $class->SUPER::create(@_);
require Test::Builder::Formatter;
$self->{Stack}->top->format(Test::Builder::Formatter->new);
my %outputs = (
all => '',
out => '',
err => '',
todo => '',
);
$self->{_outputs} = \%outputs;
my($out, $err, $todo) = map { gensym() } 1..3;
tie *$out, "Test::Builder::NoOutput::Tee", \$outputs{all}, \$outputs{out};
tie *$err, "Test::Builder::NoOutput::Tee", \$outputs{all}, \$outputs{err};
tie *$todo, "Test::Builder::NoOutput::Tee", \$outputs{all}, \$outputs{todo};
$self->output($out);
$self->failure_output($err);
$self->todo_output($todo);
return $self;
}
sub read {
my $self = shift;
my $stream = @_ ? shift : 'all';
my $out = $self->{_outputs}{$stream};
$self->{_outputs}{$stream} = '';
# Clear all the streams if 'all' is read.
if( $stream eq 'all' ) {
my @keys = keys %{$self->{_outputs}};
$self->{_outputs}{$_} = '' for @keys;
}
return $out;
}
package Test::Builder::NoOutput::Tee;
# A cheap implementation of IO::Tee.
sub TIEHANDLE {
my($class, @refs) = @_;
my @fhs;
for my $ref (@refs) {
my $fh = Test::Builder->_new_fh($ref);
push @fhs, $fh;
}
my $self = [@fhs];
return bless $self, $class;
}
sub PRINT {
my $self = shift;
print $_ @_ for @$self;
}
sub PRINTF {
my $self = shift;
my $format = shift;
printf $_ @_ for @$self;
}
1;