我知道这很丑,但我需要在 Windows 上为客户端编译一个 perl 脚本,所以基本上我试图用我的 .pl 脚本制作一个 .exe。
我正在使用通过 cpan 安装的 PAR::Packer,并且在成功之前我编译了一堆简单的脚本。
它以前工作正常,但现在看起来不工作,因为我添加了 use Text::CSV;
它可以工作,但是当我运行 .exe 时,它会出现此错误:
Can't locate Text/CSV_PP.pm in @INC (@INC contains: CODE(0x25f1f84) C:\Users\user
\AppData\Local\Temp\par-6b6f6e74757a\cache-6d4baa68e36871e6407210ca47953c635f
81e612\inc\lib C:\Users\user\AppData\Local\Temp\par-6b6f6e74757a\cache-6d4baa6
8e36871e6407210ca47953c635f81e612\inc CODE(0x239f2ec) CODE(0x239f67c)) at (eval
18) line 2.
at script/csvutil.pl line 5.
Compilation failed in require at script/csvutil.pl line 5.
BEGIN failed--compilation aborted at script/csvutil.pl line 5.
基本上我所做的是:
pp -o csvutil.exe csvutil.pl
我尝试通过以下方式添加强制加载模块:
pp -M Text::CSV csvutil.pl
我想我错过了一些东西......
我正在使用草莓 perl 5.16
代码开头:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use Text::CSV;
my $file = $ARGV[0];
my @rows;
my $csv = Text::CSV->new ( { binary => 1 ,sep_char => ",",allow_loose_quotes => 1, eol=> $/, always_quote =>1 } ) # should set binary attribute.
or die "Cannot use CSV: ".Text::CSV->error_diag ();
...# basically print all the lines