3
嘿,我正在編寫一個程序,它使用@INC鉤子來解密真正的perl源碼。我有一個很煩人的問題,沒有顯示使用警告或任何我的標準技巧......基本上,當我開始創建新的密碼對象時,循環跳到@INC中的下一個對象,沒有錯誤或任何錯誤.... 我不知道該怎麼辦!@INC hook未知致命錯誤
#!/usr/bin/perl -w
use strict;
use Crypt::CBC;
use File::Spec;
sub load_crypt {
my ($self, $filename) = @_;
print "Key?\n: ";
chomp(my $key = <STDIN>);
for my $prefix (@INC) {
my $buffer = undef;
my $cipher = Crypt::CBC->new(-key => $key, -cipher => 'Blowfish');
my $derp = undef;
$cipher ->start('decrypting');
open my $fh, '<', File::Spec->($prefix, "$filename.nc") or next;
while (read($fh,$buffer,1024)) {
$derp .= $cipher->crypt($buffer);
}
$derp .= $cipher->finish;
return ($fh, $derp);
}
}
BEGIN {
unshift @INC, \&load_crypt;
}
require 'gold.pl';
另外,如果我把實際的密鑰在初始化方法仍然失敗
你認爲給'@ INC添加函數引用是否會完成? – TLP
@TLP,閱讀[require](http://perldoc.perl.org/functions/require.html)文檔的末尾。它可以讓你自定義模塊源代碼的加載方式。 (但在這種情況下,他做錯了。) – cjm