私はそれが醜いことを知っていますが、クライアント用に 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
私は何かが欠けていると思います...
私はストロベリーパール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