【发布时间】:2017-04-05 22:04:15
【问题描述】:
我需要将 %xx 十六进制字符更改为字符。我正在尝试使用此代码,但它不起作用:
#!/usr/bin/perl -w
my $cadena = "%40%61%62";
print $cadena."\n";
$cadena =~ s/%//g;
print "cad: ".$cadena."\n";
my $string =~ s/([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
print "traducida: ".$string;
【问题讨论】:
-
始终将
use warnings和use strict放在程序顶部。 -
好的,谢谢您的建议。我正在学习 perl,所有建议都很好。
-
提示:您可以改用
s/([[:xdigit:]]{2})/chr(hex($1))/eg来避免长类和冗余代码。