晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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/perl5/URI/file/ |
Upload File : |
package URI::file::Mac;
use strict;
use warnings;
use parent 'URI::file::Base';
use URI::Escape qw(uri_unescape);
our $VERSION = '1.73';
$VERSION = eval $VERSION;
sub _file_extract_path
{
my $class = shift;
my $path = shift;
my @pre;
if ($path =~ s/^(:+)//) {
if (length($1) == 1) {
@pre = (".") unless length($path);
} else {
@pre = ("..") x (length($1) - 1);
}
} else { #absolute
$pre[0] = "";
}
my $isdir = ($path =~ s/:$//);
$path =~ s,([%/;]), URI::Escape::escape_char($1),eg;
my @path = split(/:/, $path, -1);
for (@path) {
if ($_ eq "." || $_ eq "..") {
$_ = "%2E" x length($_);
}
$_ = ".." unless length($_);
}
push (@path,"") if $isdir;
(join("/", @pre, @path), 1);
}
sub file
{
my $class = shift;
my $uri = shift;
my @path;
my $auth = $uri->authority;
if (defined $auth) {
if (lc($auth) ne "localhost" && $auth ne "") {
my $u_auth = uri_unescape($auth);
if (!$class->_file_is_localhost($u_auth)) {
# some other host (use it as volume name)
@path = ("", $auth);
# XXX or just return to make it illegal;
}
}
}
my @ps = split("/", $uri->path, -1);
shift @ps if @path;
push(@path, @ps);
my $pre = "";
if (!@path) {
return; # empty path; XXX return ":" instead?
} elsif ($path[0] eq "") {
# absolute
shift(@path);
if (@path == 1) {
return if $path[0] eq ""; # not root directory
push(@path, ""); # volume only, effectively append ":"
}
@ps = @path;
@path = ();
my $part;
for (@ps) { #fix up "." and "..", including interior, in relatives
next if $_ eq ".";
$part = $_ eq ".." ? "" : $_;
push(@path,$part);
}
if ($ps[-1] eq "..") { #if this happens, we need another :
push(@path,"");
}
} else {
$pre = ":";
@ps = @path;
@path = ();
my $part;
for (@ps) { #fix up "." and "..", including interior, in relatives
next if $_ eq ".";
$part = $_ eq ".." ? "" : $_;
push(@path,$part);
}
if ($ps[-1] eq "..") { #if this happens, we need another :
push(@path,"");
}
}
return unless $pre || @path;
for (@path) {
s/;.*//; # get rid of parameters
#return unless length; # XXX
$_ = uri_unescape($_);
return if /\0/;
return if /:/; # Should we?
}
$pre . join(":", @path);
}
sub dir
{
my $class = shift;
my $path = $class->file(@_);
return unless defined $path;
$path .= ":" unless $path =~ /:$/;
$path;
}
1;