在查看Cpanminus时,我看到安装它的一种方法如下:
curl -L https://cpanmin.us | perl - App::cpanminus
第一部分从URL下载文件,该文件可由Perl解释器解释,然后将其传递给Perl。但是,我无法弄清楚单个冲刺参数在做什么。
就此而言,我并不完全确定第二个论点在做什么(为什么Cpanminus需要知道它自己的名字?),但至少它看起来不那么神秘。
答案 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