为什么使用 Perl 解释器的单个破折号参数安装 cpanminus?
Why is cpanminus installed using a single dash argument to the Perl interpreter?
在查看 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
returns 是 cpanm
的独立版本,整个命令有效地下载 cpanm
并使用它来安装 cpanm
(a App::cpanminus)的一部分。
换句话说,
curl -L https://cpanmin.us | perl - App::cpanminus
与
大致相同
curl -L https://cpanmin.us >self_contained_cpanm
perl self_contained_cpanm App::cpanminus
在查看 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
returns 是 cpanm
的独立版本,整个命令有效地下载 cpanm
并使用它来安装 cpanm
(a App::cpanminus)的一部分。
换句话说,
curl -L https://cpanmin.us | perl - App::cpanminus
与
大致相同curl -L https://cpanmin.us >self_contained_cpanm
perl self_contained_cpanm App::cpanminus