代碼中的錯誤的這行了以「在解壓縮無效類型‘T’」:「解包中的無效類型'是什麼意思?
my $x = unpack(chr(ord("a") + 19 + print ""), $string);
它試圖獲取這是第一個變換這樣$ x的原始值:
my $string = pack("u",$x);
我無法在互聯網上的任何地方找到此錯誤。我基本上試圖做一個簡單的字符串混淆器,它可以檢索原始字符串。
代碼中的錯誤的這行了以「在解壓縮無效類型‘T’」:「解包中的無效類型'是什麼意思?
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
返回真成功,不限於1
。在將來的版本中返回2
,blah
或任何其他真值的可能性很小。
爲什麼在世界上你會這樣做?你爲什麼使用印刷品的價值?逆操作$string = pack("u", $x);
簡直是$x = unpack("u", $string);
一點混亂,這顯然甚至讓我愚弄。我正在實施一項實施起來並不明智的要求,除了產生薪水之外。 :) – Marcus
診斷是有解釋呢:)
$ perl -Mdiagnostics -le " print unpack q{t} , 1"
Invalid type 't' in unpack at -e line 1 (#1)
(F) The given character is not a valid pack or unpack type.
See "pack" in perlfunc.
(W) The given character is not a valid pack or unpack type but used to be
silently ignored.
Uncaught exception from user code:
Invalid type 't' in unpack at -e line 1.
at -e line 1.
當你說「包的第一個參數變成‘T’」我恍然大悟。我是一個人......如果我用「u」包裝,我需要把它做成+20。 – Marcus