perl:什么是PRO和CON在命令行上传递json?

Don*_*man 1 perl json 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  }
Run Code Online (Sandbox Code Playgroud)

以下是脚本的外观:

#!/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);
Run Code Online (Sandbox Code Playgroud)

har*_*vey 7

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

Getopt :: Long的PROS

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

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

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