加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – printf“修改了尝试的只读值”错误

发布时间:2020-12-15 23:33:39 所属栏目:大数据 来源:网络整理
导读:尝试打印对象时,如下所示: print "$response{_content} n";printf OUTPUT "$response{_content} n"; printf语句生成错误“尝试修改只读值” 这是一个间歇性的错误.只会偶尔发生一次,但这个程序需要100%可靠.宕. 它可以打印到STDOUT. 我究竟做错了什么?
尝试打印对象时,如下所示:

print "$response{_content} n";
printf OUTPUT "$response{_content} n";

printf语句生成错误“尝试修改只读值”

这是一个间歇性的错误.只会偶尔发生一次,但这个程序需要100%可靠.宕.

它可以打印到STDOUT.

我究竟做错了什么? arrgh!

解决方法

printf的第一个参数被解释为输出格式,而不是输出本身.有关详细信息,请参见 perldoc -f printf和 man 3 printf.

问题是,printf可能偶尔会尝试写入其args(这甚至是C programs中几个漏洞的来源),例如:

perl -we 'printf "abc%nn",$_; print "$_n";'

如您所见,这将$_设置为3,这是在%n发生之前写入的字符数.尝试%n没有进一步的args,你会看到OP的确切错误信息.

长话短说:除非你真的需要高级格式化,否则请使用print.保留printf r / o的第一个参数,除非你真的需要更高级的格式化.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读