gpt4 book ai didi

perl - 使用 PAR::Packer 编译 perl 脚本(包括模块)

转载 作者:行者123 更新时间:2023-12-04 05:15:57 27 4
gpt4 key购买 nike

我知道这很难看,但我需要在 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

最佳答案

Text::CSV 实际上只是一个界面。它自动确定使用哪个后端模块:纯 Perl Text::CSV_PP 或 XS(C 代码)Text::CSV_XS。 PAR 正在检测对 Text::CSV 的静态依赖,但无法解析动态依赖。更改您的 -M包含 Text::CSV_XS 或 Text::CSV_PP 的选项。如果您安装了 XS 版本,请捆绑它。它要快得多。

关于perl - 使用 PAR::Packer 编译 perl 脚本(包括模块),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14261260/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com