Perl printf中的转换无效

时间:2012-11-23 08:47:54

标签: perl printf

我有错误代码:

Invalid conversion in printf: "%A"' printing %A characters in a URL

这是我的代码:

$url =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg;
printf "%-10s $url\n", $res_request{$key};

我该如何解决这个问题?

非常感谢, AL

1 个答案:

答案 0 :(得分:10)

不要将$url放在格式字符串中,而是使用%s格式:

printf "%-10s %s\n", $res_request{$key}, $url;

(你绝不应该将变量插入到格式字符串中,这些字符串中的部分可能会被误认为格式化代码。)