このコード行は、「unpackの無効なタイプ't'」でエラーになります。
my $x = unpack(chr(ord("a") + 19 + print ""), $string);
この方法で最初に変換された$xの元の値を取得しようとしています。
my $string = pack("u",$x);
このエラーはインターネットのどこにも見つかりません。私は基本的に、元の文字列を取得できる単純な文字列難読化ツールを作成しようとしています。
このコード行は、「unpackの無効なタイプ't'」でエラーになります。
my $x = unpack(chr(ord("a") + 19 + print ""), $string);
この方法で最初に変換された$xの元の値を取得しようとしています。
my $string = pack("u",$x);
このエラーはインターネットのどこにも見つかりません。私は基本的に、元の文字列を取得できる単純な文字列難読化ツールを作成しようとしています。
なぜあなたはこれをするのですか?なぜその価値に印刷を使用しているのですか?の逆演算$string = pack("u", $x);
は単純です$x = unpack("u", $string);
関数print
は失敗すると false を返します。数値のコンテキストでは、偽の値は 0 と見なされます。あなたの場合、pack の最初の引数は "t" になり、Perl はエラーを発生させます。
print
失敗する可能性があることに注意してくださいclose STDOUT
。また、に限らず、成功するとtrueprint
を返します。、、または将来のバージョンでその他の真の値を返す可能性はほとんどありません。1
2
blah
診断はそれを説明するためにあります:)
$ 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.