perl - Windows 上的 Perl - 当编码类型存储在变量中并使用 PAR::Packer 时,打开函数失败
问题描述
我有一个脚本在使用 Perl 时可以正常工作,但是当我使用 PAR::Packer 将其转换为 .exe 并运行它时失败(所有这些都在 Windows 上);
仅当我存储编码类型以在变量中打开文件时才会出现此问题。例子:
my $enc= "utf8";
open my $FH, "<:encoding( $enc )", $ARGV[0]
or die "$!";
假设我提供的文件存在......无论我使用哪种编码类型或变量类型来存储编码类型,此代码每次都会失败。这仅在我对 open 函数中的编码进行硬编码时才有效(例如: "<:encoding(utf8)" )。我从$ ! 当这失败时。
怎么会这样?不知道为什么在使用 PAR::Packer 时会失败,但是当我直接使用 Perl 运行它时它工作正常。
我的解决方法是在 open 函数之后使用 binmode,但是不知道为什么上面的代码不起作用,这让我很生气。
我在 Windows 10 上使用 Perl 5.30.2。我也在使用最新的 pp 版本。
谢谢
解决方案
推荐阅读
- angular - 日期选择器 Angular
- python - 检测是否支持 IPv6、与操作系统无关、没有外部程序?
- regex - 在正则表达式中匹配用于检测成分品牌的序列
- html - ::在内容悬停之前没有平滑过渡
- python-3.x - 对 1 M 个整数元素进行插入排序?是否有任何调整可以在我的个人计算机上更快地运行它?
- css - 弹性项目 - 宽度不一致
- flutter - 使用 Flutter 导航在向导中管理 BLoC 模式
- html - 如果href链接无效,如何防止Outlook在电子邮件中将href链接显示为纯文本?
- python - 如何在python中迭代地使用格式?
- scala - 使用 Cats 效果的 Ref 更新和光纤触发器