我有一個使用模式WWW::Scripter
的Perl應用程序。它解析非常龐大的代碼,並且所有的工作都很棒,只是出現了一個我無法理解的問題。Perl中的未引用參考
我收到錯誤
無法調用 「的addEventListener」 關於在/usr/lib/perl5/site_perl/5.8.8/JE.pm線unblessed參考 ...
它看起來像JE.pm
(JavaScript引擎)中的錯誤,它似乎很穩定。這個JE被稱爲WWW::Scripter
,這似乎也是穩定的模塊。
跟蹤JavaScript源我意識到,這樣的錯誤有時(並不總是)發生於JavaScript的以下部分:
var addEvent=(function(){if(document.addEventListener){...
這似乎是正確的,以及。
讓我們來看看JE.pm
一個部分,在這裏發生了錯誤>>
my ($method, $type) = _split_meth $m;
$proto->new_method(
$name => defined $type
? $unwrap
? sub {
$self->_cast(
scalar shift->value->$method(
$self->_unwrap(@_)),
$type
);
}
: sub {
$self->_cast(
scalar shift->value->$method(@_),
$type
);
}
: $unwrap
? sub { shift->value->$m(
$self->_unwrap(@_)) }
: sub { shift->value->$m(@_) },
);
和「線」,在出現這種錯誤是它的底部,所以>>
: $unwrap
? sub { shift->value->$m(
$self->_unwrap(@_)) }
: sub { shift->value->$m(@_) },
那又怎麼了?究竟是什麼錯誤未解決的參考文獻在這種情況下意味着什麼?
有些幫助:'perl -Mdiagnostics -e'$ foo = {}; $ foo-> method'' – mob 2012-03-14 21:17:41
[JE模塊目前是alpha](https://metacpan.org/module/JE)。嘗試製作一個引發錯誤的最小測試案例。微小的文檔,小腳本。從輸入文檔中刪除引發錯誤的內容以縮小範圍。 – Lumi 2012-03-14 22:18:37