要删除语言依赖项,我需要使用任何模块或代码来处理Perl中的命令行参数。之前我使用Python Argparse 模块来处理命令行参数。
我的Python代码与argparse模块:
import argparse
default_database_config='config/database.config'
default_general_config = 'config/general.config'
commandLineArgumentParser = argparse.ArgumentParser()
commandLineArgumentParser.add_argument("-dconfig", "--dconfigaration", help="Database Configuration file name", default=default_database_config)
commandLineArgumentParser.add_argument("-gconfig", "--gconfigaration", help="General Configuration file name", default=default_general_config)
commandLineArguments = commandLineArgumentParser.parse_args()
database_config_file = commandLineArguments.dconfigaration
general_config_file = commandLineArguments.gconfigaration
如何将上述Python代码转换为Perl代码?
答案 0 :(得分:5)
这是使用Getopt::Long的基本示例,这是Perl事实上的参数解析标准:
use Getopt::Long;
my $ip;
my $port;
my $foreground = 0; # defaults to 0 if not sent in
my $stdout = 1; # defaults to 1 if not sent in
my $debug;
GetOptions(
"ip=s" => \$ip, # string
"port=i" => \$port, # int
"fg" => \$foreground, # bool, flag doesn't need a param
"stdout" => \$stdout,
"debug=s" => \$debug,
);
这样打电话:
script.pl --port 7800 --ip 127.0.0.1
或者:
script.pl -p 7800 -i 127.0.0.1