在dos中调用perl执行perl脚本会有什么不同?

在dos中调用perl执行perl脚本会有什么不同?,perl,perl-module,win32ole,ansi-colors,Perl,Perl Module,Win32ole,Ansi Colors,为什么这种行为如此 test2color.pl包含: #! perl -slw use strict; use Win32::Console::ANSI; use Term::ANSIColor qw(:constants); print BLACK, ON_WHITE, "black on white\n"; print WHITE, ON_BLACK, "white on black\n"; print GREEN, ON_CYAN, BLINK, "garish!\n"; print R

为什么这种行为如此

test2color.pl
包含:

#! perl -slw
use strict;
use Win32::Console::ANSI;
use Term::ANSIColor qw(:constants);

print BLACK, ON_WHITE, "black on white\n";
print WHITE, ON_BLACK, "white on black\n";
print GREEN, ON_CYAN, BLINK, "garish!\n";
print RESET;
输出:

您的

使用在PATH环境变量中找到的第一个perl(.exe)。这可能是cygwin安装中的perl

H:\test\perl>test2color.pl
使用操作系统信息将扩展名.pl与将运行所有.pl的特定命令行/可执行文件相关联
ftype
assoc
可用于显示/操作这些关联

我假设.pl的ftype指向完全不同的c:\Perl\bin\Perl.exe

使用在PATH环境变量中找到的第一个perl(.exe)。这可能是cygwin安装中的perl

H:\test\perl>test2color.pl
使用操作系统信息将扩展名.pl与将运行所有.pl的特定命令行/可执行文件相关联
ftype
assoc
可用于显示/操作这些关联


我假设.pl的ftype指向完全不同的
c:\Perl\bin\Perl.exe

是否安装了
Win32::Console::ANSI
模块?是否安装了
Win32::Console::ANSI
模块?
使用if$^O eq'MSWin32',Win32::Console::ANSI'
将使其在cygwin以及Windows Perl版本下工作。是的,我已经安装了草莓Perl和cygwin(我想Perl模块较少)。在这条路上,赛文路在草莓路之前。因此,由于草莓在默认情况下支持ANSI和WIN32。草莓安装可能完成了文件关联的这项工作,因此如果我需要使我的脚本更具可移植性(在没有安装草莓/Active perl的系统上运行,并添加了一些包),如果($^O eq'MSWin32')&($^O eq'Term'){print BLACK,on_WHITE,“BLACK on WHITE”;}或者{print“NO Color Sorry”}我相信如果$^O eq'MSWin32','Win32::Console::ANSI'使用
这应该可以工作
将使其在cygwin以及Windows Perl版本下工作。是的,我已经安装了草莓Perl和cygwin(我想Perl模块较少)。在这条路上,赛文路在草莓路之前。因此,由于草莓在默认情况下支持ANSI和WIN32。草莓安装可能完成了文件关联的这项工作,因此如果我需要使我的脚本更具可移植性(在没有安装草莓/Active perl的系统上运行,并添加了一些包),如果($^O eq'MSWin32')&($^O eq'Term'){print BLACK,on_WHITE,“BLACK on WHITE”;}或者{print“NO Color Sorry”我相信这应该行得通