晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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-Getopt-Long/examples/ |
Upload File : |
#!/usr/bin/perl
# Skeleton for an application using Getopt::Long.
# Author : Johan Vromans
# Created On : Tue Sep 15 15:59:04 1992
# Last Modified By: Johan Vromans
# Last Modified On: Thu Jul 4 14:43:40 2013
# Update Count : 84
# Status : Unknown, Use with caution!
################ Common stuff ################
use strict;
use warnings;
################ Setup ################
# Process command line options, config files, and such.
my $options = app_setup();
################ Presets ################
$options->{trace} = 1 if $options->{debug} || $options->{test};
################ Activate ################
main($options);
################ The Process ################
sub main {
my ($options) = @_;
use Data::Dumper;
print Dumper($options);
}
################ Options and Configuration ################
use Getopt::Long 2.13;
# Package name.
my $my_package;
# Program name and version.
my ($my_name, $my_version);
sub app_setup {
my $help = 0; # handled locally
my $ident = 0; # handled locally
# Package name.
$my_package = 'Sciurix';
# Program name and version.
($my_name, $my_version) = qw( MyProg 0.01 );
my $options =
{
verbose => 0, # verbose processing
### ADD OPTIONS HERE ###
# Development options (not shown with -help).
debug => 0, # debugging
trace => 0, # trace (show process)
test => 0, # test mode
# Service.
_package => $my_package,
_name => $my_name,
_version => $my_version,
_stdin => \*STDIN,
_stdout => \*STDOUT,
_stderr => \*STDERR,
_argv => [ @ARGV ],
};
# Return defaults if no options to process.
return $options unless @ARGV;
# Sorry, layout is a bit ugly...
if ( !GetOptions
($options,
### ADD OPTIONS HERE ###
# Configuration handling.
'config=s' => sub { app_config($options, $_[0], $_[1]) },
# Standard options.
'ident' => \$ident,
'help|?' => \$help,
'verbose',
'trace',
'debug',
) )
{
app_usage(2);
}
app_usage(0) if $help;
app_ident() if $ident;
$options;
}
sub app_ident {
print ("This is $my_package [$my_name $my_version]\n");
}
sub app_usage {
my ($exit) = @_;
select \*STDERR if $exit;
app_ident();
print <<EndOfUsage;
Usage: $0 [options] [file ...]
### ADD OPTIONS HERE ###
--config=CFG load options from config file
--help this message
--ident show identification
--verbose verbose information
EndOfUsage
exit $exit if defined $exit;
}
sub app_config {
my ($options, $optname, $config) = @_;
die("$config: $!\n") unless -e $config;
push(@{$options->{_config}}, $config);
# Process config data, filling $options ...
}