将 Cygwin 环境变量更改为 'perl'

Changing the Cygwin environment variable to 'perl'

为了执行 Perl,我使用

/cygdrive/c/Perl64/bin/perl.exe

有没有办法用 perl 替换整行?

export PATH="/cygdrive/c/Perl64/bin:$PATH"

请注意,您可能想要安装 cygwin 自己构建的 Perl。如果您继续使用此 Windows 版本的 Perl,您需要将 Windows 路径传递给它。如果您需要将 cygwin 路径自动转换为 Windows 路径,请使用 cygpath.

# XXX
$ perl /home/ikegami/a.pl
Can't open perl script "/home/ikegami/a.pl": No such file or directory

# OK
$ perl "$( cygpath -w '/home/ikegami/a.pl' )"
Hello, World!

处理变量列表参数更难。

# XXX
$ perl -E'for (@ARGV) { say "$_: ", -e()?1:0 }' "/cygdrive/c/Program Files"/*
/cygdrive/c/Program Files/ATI: 0
/cygdrive/c/Program Files/Common Files: 0
...

# OK
$ cygpath -w "/cygdrive/c/Program Files"/* | xargs -d"\n" \
    perl -E'for (@ARGV) { say "$_: ", -e()?1:0 }'
C:\Program Files\ATI: 1
C:\Program Files\Common Files: 1
...

您可以向 ~/.bashrc 文件添加别名,如下所示:

alias perl='/cygdrive/c/Perl64/bin/perl.exe'