只有在使用-d开关运行时,perl脚本才会抛出编译错误
发布时间:2020-12-15 21:45:47 所属栏目:大数据 来源:网络整理
导读:我有一个perl脚本,当我尝试使用-d开关在调试模式下运行时,运行正常. 当我使用-d开关时,我得到一个编译错误,如: Loading DB routines from perl5db.pl version 1.33Editor support available.Enter h or `h h' for help,or `perldoc perldebug' for more hel
我有一个perl脚本,当我尝试使用-d开关在调试模式下运行时,运行正常.
当我使用-d开关时,我得到一个编译错误,如: Loading DB routines from perl5db.pl version 1.33 Editor support available. Enter h or `h h' for help,or `perldoc perldebug' for more help. main::(....bintestnbestrover1.pl:23): 23: binmode STDOUT,":utf8"; Access is denied. Unknown error Compilation failed in require at //fbl/NAS/PUB/RapTools/Perl64/lib/Term/ReadLine /Perl.pm line 65. at //fbl/NAS/PUB/RapTools/Perl64/lib/Term/ReadLine/Perl.pm line 65 Term::ReadLine::Perl::new('Term::ReadLine','perldb','GLOB(0x382418)','GLOB(0x322c30)') called at //fbl/NAS/PUB/RapTools/Perl64/lib/perl5db.pl line 60 68 DB::setterm called at //fbl/NAS/PUB/RapTools/Perl64/lib/perl5db.pl line 2241 DB::DB called at ....bintestnbestrover1.pl line 23 Attempt to reload Term/ReadLine/readline.pm aborted. Compilation failed in require at //fbl/NAS/PUB/RapTools/Perl64/lib/Term/ReadLine /Perl.pm line 65. END failed--call queue aborted at ....bintestnbestrover1.pl line 65. at ....bintestnbestrover1.pl line 65 当我在没有-d开关的情况下运行脚本时,不会发生这种情况.关于这里可能出错的任何想法? 谢谢! 编辑: 解决方法
stacktrace表明问题来自从调试器加载的Term :: ReadLine :: Perl.所以没有调试 – >没有加载调试器 – >没有加载Term :: ReadLine :: Perl – >没有错误.
从查看Term :: ReadLine :: Perl我想这个问题就在它试图加载Term :: ReadLine :: readline的行中,它试图用STDIN,STDOUT等来做一些东西,把它用作终端.因为这实际上意味着,某些字节序列具有特殊含义(转义和控制代码,如重置终端,开关线模式,回声等),这可能会与您的binmode STDOUT设置有关. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |