【发布时间】:2011-04-18 15:47:40
【问题描述】:
我有一个使用 Perl 5.8 在 Linux 平台上构建的 Perl 脚本。但是现在我尝试在具有相同 Perl 版本的 Windows 平台命令提示符下运行 Perl 脚本。
我正在使用这个命令perl rgex.pl 但是它给了我一大堆错误,在我看来它已经在脚本本身中解决了。奇怪的是我能够运行另一个 Perl 脚本而没有问题,其中包括简单的功能,如打印、输入等。
代码:
#!/usr/bin/perl
use warnings;
use strict;
use Term::ANSIColor;
my $file = "C:\Documents and Settings\Desktop\logfiles.log";
open LOG, $file or die "The file $file has the error of:\n => $!";
my @lines = <LOG>;
close (LOG);
my $varchar = 0;
foreach my $line ( @lines ) {
if ( $line =~ m/PLLog/ )
{
print("\n\n\n");
my $coloredText = colored($varchar, 'bold underline red');
print colored ("POS :: $coloredText\n\n", 'bold underline red');
$varchar ++;
}
print( $line );
}
当我在 windows 命令提示符下运行时,它会出现以下错误:
- 在 rgex.pl 第 7 行通过了无法识别的转义 \D。
- => rgex.pl 第 8 行没有这样的文件或目录。
请对代码提供一些建议。谢谢。
【问题讨论】:
-
我认为 Term::ANSIColor 模块不适用于 Windows。
-
是的,但仅在 IDE 上受支持。
-
控制台也支持。只需
use Win32::Console::ANSI在您的程序顶部。然后,您可以打印 ANSI 转义序列(如 Term::ANSIColor 生成的转义序列),它们就可以工作了。 -
请注意,它是“代码”,而不是“代码”——除非你能告诉我们有多少。
-
@reinierpost 嘿,伙计们,这个问题已经回答并关闭,所以请停止发帖,因为我必须做一些小的修改,所以请体谅。
标签: windows perl command-prompt