私は2つのXML文書を比較できるPerl mod XML :: SemanticDiffを使用しています。自分のカスタムハンドラを書こうと思っていますが、Perlには比較的新しいので、これをどうやって行うのかは迷っています。Perlハンドラの紹介はありますか?
ハンドラは、特定のイベントが発生したときに呼び出されるサブルーチン以上のものではないことを理解しています。しかし、私は、これらのイベントが自分のコード内のメソッドをどのように呼び出すかに関する実装の詳細についてはあまり詳しくはわかりません。例えば
、このモジュールの基本的な実装のようなもので始まります。
my $diff = XML::SemanticDiff->new(keepdata=> 1, keeplinenums => 1, diffhandler => 1);
my @changes = $diff->compare($file1, $file2);
そして私は私のカスタムハンドラは、このようなものになりますことを知っている:
sub element_value($self, $element, $to_element_properties, $fromdoc_element_properties) {
my ($self, @args) = @_;
}
をそれにあっ必要がありません実際にこのサブ関数を呼び出すための介入コードですか?何かのように、
foreach my $change (@changes) {
$change->element_value(some_arguements_here);
}
$diff->compare($file1, $file2);
が実行されると自動的に呼び出されるハンドラですか?
いずれのポインタも大歓迎です。
ご返信ありがとうございました。 –