概念:ライブラリは私のpublic_htmlフォルダに置かれ、文字列をデコードする目的です。しかし、そのライブラリが存在しない場合は、エラーで停止してください。前でした提案された方法:終了perl pmが利用できない場合
eval("require x.pm");
if ([email protected]) {
print "The library is missing";
}
else{
BEGIN{
eval{"use x"};
}
1123131323fsdfsfsdfsfgdfgdfgghfghfghfgheterterter ...
no x;
}
ライブラリが存在する場合、デコードが正常に動作し、すべてが「互角のドーリー」です。理論上...ファイルが存在しない場合、トップループはエラーを出力するはずです...スクリプトが暗号化された文字列を見て、それが有効なプログラムではないと判断すると、エラー500が発生します。私は、フラグ
$set=0;
$set=1 if eval("require x.pm");
if ($set eq 0){
...
..
同じことでそれを試してみましたので、それは "$ @を" だったのか疑問に思っ
。文字列にコードを入れようとしました:
$_="1123131323fsdfsfsdfsfgdfgdfgghfghfghfgheterterter ..."
これは役に立ちませんでした。だから誰も私が間違っていることにどのような光を投げることができますか?
私はあなたが '1123131323fsdfsfsdfsfgdfgdfgghfghfghfgheterterterで行うことがperlの期待は明らかではありませんよ...'。どのモジュールがロードされているかにかかわらず、プログラムはまだコンパイルする必要があります。文字列をデコードするには、エンコードされた文字列をデコードサブルーチンに渡す必要があります。また、 'BEGIN {eval {" use x "}; } 'は' require 'の前に*コンパイル時*に実行され、条件文とは無関係に – Borodin
に入れます* "ライブラリが存在する場合、デコードはうまく動作します" *何があるかも想像できませんあなたのモジュール 'x'でそのコードをコンパイルするようにしてください。あなたのモジュールが 'unimport'メソッドを持っていない限り、' no x'は役に立たないでしょう – Borodin
それはSobriqueとbolav [提案](http://stackoverflow.com/a/35651339)なのではありません。そうではないと主張してください。 bolavさんのコメントはありませんか? BEGINブロックはコンパイル時に無条件で実行されます。 – ThisSuitIsBlackNot