在查看Cpanminus时,我看到一种安装方法如下:
curl -L https://cpanmin.us | perl - App::cpanminus
第一部分从 URL 下载一个可由 Perl 解释器解释的文件,然后将其通过管道传输到 Perl。不过,我无法弄清楚单破折号参数在做什么。
就此而言,我不完全确定第二个参数在做什么(为什么 Cpanminus 需要知道它自己的名字?),但至少它看起来不那么神秘。
传递给的第一个非选项参数perl
是要执行的文件的名称。-
表示标准输入。因此,该命令已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