为什么使用单个短划线参数为Perl解释器安装cpanminus?

时间:2017-09-25 21:59:46

标签: perl cpanm

在查看Cpanminus时,我看到安装它的一种方法如下:

curl -L https://cpanmin.us | perl - App::cpanminus

第一部分从URL下载文件,该文件可由Perl解释器解释,然后将其传递给Perl。但是,我无法弄清楚单个冲刺参数在做什么。

就此而言,我并不完全确定第二个论点在做什么(为什么Cpanminus需要知道它自己的名字?),但至少它看起来不那么神秘。

1 个答案:

答案 0 :(得分:3)

传递给perl的第一个非选项参数是要执行的文件的名称。 -表示STDIN。因此,该命令perl执行curl -L https://cpanmin.us的输出,并将App::cpanminus作为参数传递。

由于curl -L https://cpanmin.us返回cpanm的自包含版本,整个命令会有效地下载cpanm并使用它来安装cpanm(App :: cpanminus的一部分)。

换句话说,

curl -L https://cpanmin.us | perl - App::cpanminus

大致相同
curl -L https://cpanmin.us >self_contained_cpanm
perl self_contained_cpanm App::cpanminus