perl:在命令行上传递json是什么?PRO和CON&s已经过了什么?

时间:2015-05-06 22:35:21

标签: json perl command-line-arguments

我想标准化使用json作为我做各种编程事项的数据交换格式吗? [到目前为止除了MySQL以外的一切:-(]

我目前的问题是: 使用json格式通过命令行将参数传递给perl脚本的PRO和CON是什么?

以下是我想出的一些内容。如果这在长期内不可行,请告诉我

PRO:

  • 参数可以按任何顺序
  • 参数以标准格式传递,可以出于其他目的使用和解析。 (传递给javascript函数,传递给PHP,保存在表中)

CON:

  • 不知道长度限制
  • 不知道可能出现的问题。

这是命令行的样子:

perl perlScript.pl {\"key\ 1\": \"value\ 1\", \"key\ 2\" : \"value\ 2\", \"key\ 3\" : 0  }

这是脚本的样子:

#!/usr/bin/perl

# Pass arguments to script on command line via json

use JSON;

# Use loop to combine all command line arguments into one variable
my $json = '';
foreach my $arg(@ARGV) {
  $json .= $arg;
}

# convert variable to hash
my $hash = decode_json($json);

use Data::Dumper;
print Dumper(\%$hash);

1 个答案:

答案 0 :(得分:7)

Getopt :: Long模块满足您的所有要求/专业人员,具有以下额外好处

Getopt :: Long的PROS

  • 它是公认的最佳做法,并使用CLI工具的其他用户期望的语法
  • 自我记录未来发展
  • 在出现拼写错误或错误的参数类型时提供默认的有用错误消息
  • 很多很多......

json上唯一的PRO就是如果期望这将作为基于Web的API或工具提供,这似乎不是这里的情况。

这并不是说JSON在CLI工具中没有地位,它被广泛用作配置文件,复杂数据存储,软件(RPC)之间的远程/外部调用的基于文件的资源,以及提供网络前端。