Offset 10, 72 lines modified | Offset 10, 72 lines modified |
10 | #-----------------------------------------------------# | 10 | #-----------------------------------------------------# |
| |
11 | use·strict; | 11 | use·strict; |
12 | use·vars·qw($VERSION); | 12 | use·vars·qw($VERSION); |
| |
13 | $VERSION·=·'0.01'; | 13 | $VERSION·=·'0.01'; |
| |
14 | sub·get_end_element·{ | 14 | sub·get_start_element·{ |
15 | ····my·$self·=·shift; | 15 | ····my·$self·=·shift; |
| |
16 | ····my·$method; | 16 | ····my·$method; |
17 | ····my·$callbacks; | 17 | ····my·$callbacks; |
18 | ····if·(exists·$self->{ParseOptions})·{ | 18 | ····if·(exists·$self->{ParseOptions})·{ |
19 | ········$callbacks·=·$self->{ParseOptions}; | 19 | ········$callbacks·=·$self->{ParseOptions}; |
20 | ····} | 20 | ····} |
21 | ····else·{ | 21 | ····else·{ |
22 | ········$callbacks·=·$self; | 22 | ········$callbacks·=·$self; |
23 | ····} | 23 | ····} |
| |
24 | ····if·(0)·{·#·dummy·to·make·elsif's·below·compile | 24 | ····if·(0)·{·#·dummy·to·make·elsif's·below·compile |
25 | ····} | 25 | ····} |
26 | ····elsif·(defined·$callbacks->{'ContentHandler'}·and·$method·=·$callbacks->{'ContentHandler'}->can('end_element')·)·{ | 26 | ····elsif·(defined·$callbacks->{'ContentHandler'}·and·$method·=·$callbacks->{'ContentHandler'}->can('start_element')·)·{ |
27 | ········my·$handler·=·$callbacks->{'ContentHandler'}; | 27 | ········my·$handler·=·$callbacks->{'ContentHandler'}; |
28 | ········$self->{Methods}->{'end_element'}·=·sub·{·$method->($handler,·@_)·}; | 28 | ········$self->{Methods}->{'start_element'}·=·sub·{·$method->($handler,·@_)·}; |
29 | ····} | 29 | ····} |
30 | ····elsif·(defined·$callbacks->{'DocumentHandler'}·and·$method·=·$callbacks->{'DocumentHandler'}->can('end_element')·)·{ | 30 | ····elsif·(defined·$callbacks->{'DocumentHandler'}·and·$method·=·$callbacks->{'DocumentHandler'}->can('start_element')·)·{ |
31 | ········my·$handler·=·$callbacks->{'DocumentHandler'}; | 31 | ········my·$handler·=·$callbacks->{'DocumentHandler'}; |
32 | ········$self->{Methods}->{'end_element'}·=·sub·{·$method->($handler,·@_)·}; | 32 | ········$self->{Methods}->{'start_element'}·=·sub·{·$method->($handler,·@_)·}; |
33 | ····} | 33 | ····} |
34 | ····elsif·(defined·$callbacks->{'Handler'}·and·$method·=·$callbacks->{'Handler'}->can('end_element')·)·{ | 34 | ····elsif·(defined·$callbacks->{'Handler'}·and·$method·=·$callbacks->{'Handler'}->can('start_element')·)·{ |
35 | ········my·$handler·=·$callbacks->{'Handler'}; | 35 | ········my·$handler·=·$callbacks->{'Handler'}; |
36 | ········$self->{Methods}->{'end_element'}·=·sub·{·$method->($handler,·@_)·}; | 36 | ········$self->{Methods}->{'start_element'}·=·sub·{·$method->($handler,·@_)·}; |
37 | ····} | 37 | ····} |
38 | ····elsif·(defined·$callbacks->{'ContentHandler'}·and·$callbacks->{'ContentHandler'}->can('AUTOLOAD')·)·{ | 38 | ····elsif·(defined·$callbacks->{'ContentHandler'}·and·$callbacks->{'ContentHandler'}->can('AUTOLOAD')·)·{ |
39 | ········my·$res·=·eval·{·$callbacks->{'ContentHandler'}->end_element(@_)·}; | 39 | ········my·$res·=·eval·{·$callbacks->{'ContentHandler'}->start_element(@_)·}; |
40 | ········if·($@)·{ | 40 | ········if·($@)·{ |
41 | ············die·$@; | 41 | ············die·$@; |
42 | ········} | 42 | ········} |
43 | ········else·{ | 43 | ········else·{ |
44 | ············my·$handler·=·$callbacks->{'ContentHandler'}; | 44 | ············my·$handler·=·$callbacks->{'ContentHandler'}; |
45 | ············$self->{Methods}->{'end_element'}·=·sub·{·$handler->end_element(@_)·}; | 45 | ············$self->{Methods}->{'start_element'}·=·sub·{·$handler->start_element(@_)·}; |
46 | ········} | 46 | ········} |
47 | ····} | 47 | ····} |
48 | ····elsif·(defined·$callbacks->{'DocumentHandler'}·and·$callbacks->{'DocumentHandler'}->can('AUTOLOAD')·)·{ | 48 | ····elsif·(defined·$callbacks->{'DocumentHandler'}·and·$callbacks->{'DocumentHandler'}->can('AUTOLOAD')·)·{ |
49 | ········my·$res·=·eval·{·$callbacks->{'DocumentHandler'}->end_element(@_)·}; | 49 | ········my·$res·=·eval·{·$callbacks->{'DocumentHandler'}->start_element(@_)·}; |
50 | ········if·($@)·{ | 50 | ········if·($@)·{ |
51 | ············die·$@; | 51 | ············die·$@; |
52 | ········} | 52 | ········} |
53 | ········else·{ | 53 | ········else·{ |
54 | ············my·$handler·=·$callbacks->{'DocumentHandler'}; | 54 | ············my·$handler·=·$callbacks->{'DocumentHandler'}; |
55 | ············$self->{Methods}->{'end_element'}·=·sub·{·$handler->end_element(@_)·}; | 55 | ············$self->{Methods}->{'start_element'}·=·sub·{·$handler->start_element(@_)·}; |
56 | ········} | 56 | ········} |
57 | ····} | 57 | ····} |
58 | ····elsif·(defined·$callbacks->{'Handler'}·and·$callbacks->{'Handler'}->can('AUTOLOAD')·)·{ | 58 | ····elsif·(defined·$callbacks->{'Handler'}·and·$callbacks->{'Handler'}->can('AUTOLOAD')·)·{ |
59 | ········my·$res·=·eval·{·$callbacks->{'Handler'}->end_element(@_)·}; | 59 | ········my·$res·=·eval·{·$callbacks->{'Handler'}->start_element(@_)·}; |
60 | ········if·($@)·{ | 60 | ········if·($@)·{ |
61 | ············die·$@; | 61 | ············die·$@; |
62 | ········} | 62 | ········} |
63 | ········else·{ | 63 | ········else·{ |
64 | ············my·$handler·=·$callbacks->{'Handler'}; | 64 | ············my·$handler·=·$callbacks->{'Handler'}; |
65 | ············$self->{Methods}->{'end_element'}·=·sub·{·$handler->end_element(@_)·}; | 65 | ············$self->{Methods}->{'start_element'}·=·sub·{·$handler->start_element(@_)·}; |
66 | ········} | 66 | ········} |
67 | ····} | 67 | ····} |
68 | ····else·{ | 68 | ····else·{ |
69 | ········$self->{Methods}->{'end_element'}·=·sub·{·}; | 69 | ········$self->{Methods}->{'start_element'}·=·sub·{·}; |
70 | ····} | 70 | ····} |
| |
71 | return·1; | 71 | return·1; |
72 | } | 72 | } |
| |
73 | sub·get_characters·{ | 73 | sub·get_characters·{ |
74 | ····my·$self·=·shift; | 74 | ····my·$self·=·shift; |
Offset 199, 72 lines modified | Offset 199, 72 lines modified |
199 | ····else·{ | 199 | ····else·{ |
200 | ········$self->{Methods}->{'comment'}·=·sub·{·}; | 200 | ········$self->{Methods}->{'comment'}·=·sub·{·}; |
201 | ····} | 201 | ····} |
| |
202 | return·1; | 202 | return·1; |
203 | } | 203 | } |
| |
204 | sub·get_start_element·{ | 204 | sub·get_end_element·{ |
205 | ····my·$self·=·shift; | 205 | ····my·$self·=·shift; |
| |
206 | ····my·$method; | 206 | ····my·$method; |
207 | ····my·$callbacks; | 207 | ····my·$callbacks; |
208 | ····if·(exists·$self->{ParseOptions})·{ | 208 | ····if·(exists·$self->{ParseOptions})·{ |
209 | ········$callbacks·=·$self->{ParseOptions}; | 209 | ········$callbacks·=·$self->{ParseOptions}; |
210 | ····} | 210 | ····} |
211 | ····else·{ | 211 | ····else·{ |
212 | ········$callbacks·=·$self; | 212 | ········$callbacks·=·$self; |
213 | ····} | 213 | ····} |
| |
214 | ····if·(0)·{·#·dummy·to·make·elsif's·below·compile | 214 | ····if·(0)·{·#·dummy·to·make·elsif's·below·compile |
215 | ····} | 215 | ····} |
216 | ····elsif·(defined·$callbacks->{'ContentHandler'}·and·$method·=·$callbacks->{'ContentHandler'}->can('start_element')·)·{ | 216 | ····elsif·(defined·$callbacks->{'ContentHandler'}·and·$method·=·$callbacks->{'ContentHandler'}->can('end_element')·)·{ |
217 | ········my·$handler·=·$callbacks->{'ContentHandler'}; | 217 | ········my·$handler·=·$callbacks->{'ContentHandler'}; |
218 | ········$self->{Methods}->{'start_element'}·=·sub·{·$method->($handler,·@_)·}; | 218 | ········$self->{Methods}->{'end_element'}·=·sub·{·$method->($handler,·@_)·}; |
219 | ····} | 219 | ····} |
220 | ····elsif·(defined·$callbacks->{'DocumentHandler'}·and·$method·=·$callbacks->{'DocumentHandler'}->can('start_element')·)·{ | 220 | ····elsif·(defined·$callbacks->{'DocumentHandler'}·and·$method·=·$callbacks->{'DocumentHandler'}->can('end_element')·)·{ |
221 | ········my·$handler·=·$callbacks->{'DocumentHandler'}; | 221 | ········my·$handler·=·$callbacks->{'DocumentHandler'}; |
222 | ········$self->{Methods}->{'start_element'}·=·sub·{·$method->($handler,·@_)·}; | 222 | ········$self->{Methods}->{'end_element'}·=·sub·{·$method->($handler,·@_)·}; |
223 | ····} | 223 | ····} |
224 | ····elsif·(defined·$callbacks->{'Handler'}·and·$method·=·$callbacks->{'Handler'}->can('start_element')·)·{ | 224 | ····elsif·(defined·$callbacks->{'Handler'}·and·$method·=·$callbacks->{'Handler'}->can('end_element')·)·{ |
225 | ········my·$handler·=·$callbacks->{'Handler'}; | 225 | ········my·$handler·=·$callbacks->{'Handler'}; |
226 | ········$self->{Methods}->{'start_element'}·=·sub·{·$method->($handler,·@_)·}; | 226 | ········$self->{Methods}->{'end_element'}·=·sub·{·$method->($handler,·@_)·}; |
227 | ····} | 227 | ····} |
228 | ····elsif·(defined·$callbacks->{'ContentHandler'}·and·$callbacks->{'ContentHandler'}->can('AUTOLOAD')·)·{ | 228 | ····elsif·(defined·$callbacks->{'ContentHandler'}·and·$callbacks->{'ContentHandler'}->can('AUTOLOAD')·)·{ |
229 | ········my·$res·=·eval·{·$callbacks->{'ContentHandler'}->start_element(@_)·}; | 229 | ········my·$res·=·eval·{·$callbacks->{'ContentHandler'}->end_element(@_)·}; |
230 | ········if·($@)·{ | 230 | ········if·($@)·{ |
231 | ············die·$@; | 231 | ············die·$@; |
232 | ········} | 232 | ········} |
233 | ········else·{ | 233 | ········else·{ |
234 | ············my·$handler·=·$callbacks->{'ContentHandler'}; | 234 | ············my·$handler·=·$callbacks->{'ContentHandler'}; |
235 | ············$self->{Methods}->{'start_element'}·=·sub·{·$handler->start_element(@_)·}; | 235 | ············$self->{Methods}->{'end_element'}·=·sub·{·$handler->end_element(@_)·}; |
236 | ········} | 236 | ········} |
237 | ····} | 237 | ····} |
238 | ····elsif·(defined·$callbacks->{'DocumentHandler'}·and·$callbacks->{'DocumentHandler'}->can('AUTOLOAD')·)·{ | 238 | ····elsif·(defined·$callbacks->{'DocumentHandler'}·and·$callbacks->{'DocumentHandler'}->can('AUTOLOAD')·)·{ |
239 | ········my·$res·=·eval·{·$callbacks->{'DocumentHandler'}->start_element(@_)·}; | 239 | ········my·$res·=·eval·{·$callbacks->{'DocumentHandler'}->end_element(@_)·}; |
240 | ········if·($@)·{ | 240 | ········if·($@)·{ |
241 | ············die·$@; | 241 | ············die·$@; |
242 | ········} | 242 | ········} |
243 | ········else·{ | 243 | ········else·{ |
244 | ············my·$handler·=·$callbacks->{'DocumentHandler'}; | 244 | ············my·$handler·=·$callbacks->{'DocumentHandler'}; |
245 | ············$self->{Methods}->{'start_element'}·=·sub·{·$handler->start_element(@_)·}; | 245 | ············$self->{Methods}->{'end_element'}·=·sub·{·$handler->end_element(@_)·}; |
246 | ········} | 246 | ········} |
247 | ····} | 247 | ····} |
248 | ····elsif·(defined·$callbacks->{'Handler'}·and·$callbacks->{'Handler'}->can('AUTOLOAD')·)·{ | 248 | ····elsif·(defined·$callbacks->{'Handler'}·and·$callbacks->{'Handler'}->can('AUTOLOAD')·)·{ |
249 | ········my·$res·=·eval·{·$callbacks->{'Handler'}->start_element(@_)·}; | 249 | ········my·$res·=·eval·{·$callbacks->{'Handler'}->end_element(@_)·}; |
250 | ········if·($@)·{ | 250 | ········if·($@)·{ |
251 | ············die·$@; | 251 | ············die·$@; |
252 | ········} | 252 | ········} |
253 | ········else·{ | 253 | ········else·{ |
254 | ············my·$handler·=·$callbacks->{'Handler'}; | 254 | ············my·$handler·=·$callbacks->{'Handler'}; |
255 | ············$self->{Methods}->{'start_element'}·=·sub·{·$handler->start_element(@_)·}; | 255 | ············$self->{Methods}->{'end_element'}·=·sub·{·$handler->end_element(@_)·}; |
256 | ········} | 256 | ········} |
257 | ····} | 257 | ····} |
258 | ····else·{ | 258 | ····else·{ |
259 | ········$self->{Methods}->{'start_element'}·=·sub·{·}; | 259 | ········$self->{Methods}->{'end_element'}·=·sub·{·}; |
260 | ····} | 260 | ····} |
| |
261 | return·1; | 261 | return·1; |
262 | } | 262 | } |
| |
| |
263 | 1; | 263 | 1; |