这行代码出错了“Invalid type 't' in unpack”:

my $x = unpack(chr(ord("a") + 19 + print ""), $string);

它试图检索最初以这种方式转换的 $x 的原始值:
my $string = pack("u",$x);

我在互联网上的任何地方都找不到这个错误。我基本上是在尝试制作一个简单的字符串混淆器,它可以检索原始字符串。

最佳答案

函数 print 在失败时返回 false。在数字上下文中,假值被视为 0。在您的情况下,pack 的第一个参数变为“t”并且 Perl 引发错误。

请注意, print 可能会失败,通常是在您执行 close STDOUT 的情况下。此外, print 成功返回 true ,不限于 1 。在 future 版本中返回 2blah 或任何其他真值的可能性很小。

关于perl - "Invalid type ' t' in unpack 是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13888527/

10-15 00:58