如何在perl中将十六进制转换为字符字符串

Asi*_*er 6 perl hex char

我需要将 %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;
Run Code Online (Sandbox Code Playgroud)

Cha*_*hak 8

改变

my $string =~ s/([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
Run Code Online (Sandbox Code Playgroud)

$cadena =~ s/([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
Run Code Online (Sandbox Code Playgroud)

这样搜索和替换就可以在 上完成$cadena

输出:@ab

40 => @
61 => a
62 => b
Run Code Online (Sandbox Code Playgroud)

  • @Asier:我们都有这个问题。这就是为什么我们有“use strict”和“use warnings”。 (2认同)