Subject: | [Patch] Preload dependencies for File::BOM |
Dependency scanning when File::BOM is used in a via construct misses several dependencies, resulting in errors when calling PAR packed executables. This particularly applies to CJK locales.
The attached patch adds a preload section to include them. It could perhaps also load Encode::HanExtra and Encode::JIS2K, but I have not done so in this version.
The patch was tested using the code below. The file open is needed to trigger the loading of the extra modules under "pp -x".
A more general solution might be to scan for "open .+?'<:via(\w+)'" constructs.
Regards,
Shawn.
use File::BOM;
open my $fh, '<:via(File::BOM)', $0 # just read ourselves
or die "Cannot open own code via File::BOM\n";
$fh->close;
Subject: | ScanDeps.pm.FileBOM.patch |
Index: lib/Module/ScanDeps.pm
===================================================================
--- lib/Module/ScanDeps.pm (revision 1595)
+++ lib/Module/ScanDeps.pm (working copy)
@@ -331,6 +331,16 @@
grep /\bMM_/, _glob_in_inc('ExtUtils', 1);
},
'File/Basename.pm' => [qw( re.pm )],
+ 'File/BOM.pm' => [
+ qw (
+ Encode/Unicode.pm
+ PerlIO/via.pm
+ Encode/CN.pm
+ Encode/JP.pm
+ Encode/KR.pm
+ Encode/TW.pm
+ ) # load extra Encode pages just in case - should probably also do the extended ones
+ ],
'File/HomeDir.pm' => 'sub',
'File/Spec.pm' => sub {
require File::Spec;