📄 handler.html
字号:
<TR BGCOLOR="#dcab68"><TD WIDTH="200"><A NAME="CODE5"></A><B>end_element</B></TD><TD>description</TD><TD WIDTH="30"><A HREF="#TOP">top</A></TD><TD WIDTH="30"><A HREF="#CODE4">prev</A></TD><TD WIDTH="30"><A HREF="#CODE6">next</A></TD></TR></TABLE><font color="#0000ff"><b>sub</b></font> <font color="#ff0000"><b>end_element</b></font> {<pre> <font color="#0000ff"><b>my</b></font> <font color="#0000ff"><b>(</b></font><font color="#1f32ff">$self</font>,<font color="#1f32ff">$element</font><font color="#0000ff"><b>)</b></font>=<font color="#1f32ff">@_</font>; <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">$elements</font>=<font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font>__elements<font color="#0000ff"><b>}</b></font>; <font color="#4169e1"><b>pop</b></font> @$elements;</pre>}<BR><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#dcab68"><TD WIDTH="200"><A NAME="CODE6"></A><B>new</B></TD><TD>description</TD><TD WIDTH="30"><A HREF="#TOP">top</A></TD><TD WIDTH="30"><A HREF="#CODE5">prev</A></TD><TD WIDTH="30"><A HREF="#CODE7">next</A></TD></TR></TABLE><font color="#0000ff"><b>sub</b></font> <font color="#ff0000"><b>new</b></font> {<pre> <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">$proto</font>=<font color="#4169e1"><b>shift</b></font>; <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">$class</font>=<font color="#4169e1"><b>ref</b></font><font color="#0000ff"><b>(</b></font><font color="#1f32ff">$proto</font><font color="#0000ff"><b>)</b></font> || <font color="#1f32ff">$proto</font>; <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">%attrs</font>=<font color="#1f32ff">@_</font>; <font color="#ff0000">## pass on non-minus-prefixed attributes to handler</font><BR> <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">%handler_attrs</font>; <font color="#0000ff"><b>foreach</b></font> <font color="#0000ff"><b>(</b></font><font color="#4169e1"><b>keys</b></font> <font color="#1f32ff">%attrs</font><font color="#0000ff"><b>)</b></font> <font color="#0000ff"><b>{</b></font> <font color="#1f32ff">$handler_attrs</font><font color="#0000ff"><b>{</b></font><font color="#1f32ff">$_</font><font color="#0000ff"><b>}</b></font>=<font color="#4169e1"><b>delete</b></font> <font color="#1f32ff">$attrs</font><font color="#0000ff"><b>{</b></font><font color="#1f32ff">$_</font><font color="#0000ff"><b>}</b></font> <font color="#0000ff"><b>unless</b></font> <font color="#006400"><b>/^-/</b></font>; <font color="#0000ff"><b>}</b></font> <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">$self</font>=<font color="#1f32ff">$class</font>-><font color="#8000ff"><b>SUPER</b></font>::<font color="#ff8204">new</font><font color="#0000ff"><b>(</b></font><font color="#1f32ff">%handler_attrs</font><font color="#0000ff"><b>)</b></font>; <font color="#ff0000">## minus-prefixed attributes stay here, double-minus to SVG object</font><BR> <font color="#0000ff"><b>foreach</b></font> <font color="#0000ff"><b>(</b></font><font color="#4169e1"><b>keys</b></font> <font color="#1f32ff">%attrs</font><font color="#0000ff"><b>)</b></font> <font color="#0000ff"><b>{</b></font> <font color="#0000ff"><b>if</b></font> <font color="#0000ff"><b>(</b></font><font color="#006400"><b>/^-(-.+)$/</b></font><font color="#0000ff"><b>)</b></font> <font color="#0000ff"><b>{</b></font> <font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font>__svg_attr<font color="#0000ff"><b>}</b></font><font color="#0000ff"><b>{</b></font><font color="#1f32ff">$1</font><font color="#0000ff"><b>}</b></font>=<font color="#1f32ff">$attrs</font><font color="#0000ff"><b>{</b></font><font color="#1f32ff">$_</font><font color="#0000ff"><b>}</b></font>; <font color="#0000ff"><b>}</b></font> <font color="#0000ff"><b>else</b></font> <font color="#0000ff"><b>{</b></font> <font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font><font color="#1f32ff">$_</font><font color="#0000ff"><b>}</b></font>=<font color="#1f32ff">$attrs</font><font color="#0000ff"><b>{</b></font><font color="#1f32ff">$_</font><font color="#0000ff"><b>}</b></font>; <font color="#0000ff"><b>}</b></font> <font color="#0000ff"><b>}</b></font> <font color="#0000ff"><b>return</b></font> <font color="#1f32ff">$self</font>;</pre>}<BR><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#dcab68"><TD WIDTH="200"><A NAME="CODE7"></A><B>processing_instruction</B></TD><TD>description</TD><TD WIDTH="30"><A HREF="#TOP">top</A></TD><TD WIDTH="30"><A HREF="#CODE6">prev</A></TD><TD WIDTH="30"><A HREF="#CODE8">next</A></TD></TR></TABLE><font color="#0000ff"><b>sub</b></font> <font color="#ff0000"><b>processing_instruction</b></font> {<pre> <font color="#0000ff"><b>my</b></font> <font color="#0000ff"><b>(</b></font><font color="#1f32ff">$self</font>,<font color="#1f32ff">$pi</font><font color="#0000ff"><b>)</b></font>=<font color="#1f32ff">@_</font>; <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">$elements</font>=<font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font>__elements<font color="#0000ff"><b>}</b></font>; <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">$parent</font>=<font color="#1f32ff">$elements</font>-><font color="#0000ff"><b>[</b></font>-1<font color="#0000ff"><b>]</b></font>; <font color="#1f32ff">$parent</font>-><font color="#ff8204">pi</font><font color="#0000ff"><b>(</b></font><font color="#007400">"<font color="#1f32ff">$pi</font>->{Target} <font color="#1f32ff">$pi</font>->{Data}"</font><font color="#0000ff"><b>)</b></font>; <font color="#1f32ff">$self</font>-><font color="#ff8204">debug</font><font color="#0000ff"><b>(</b></font><font color="#007400">"PI"</font>,<font color="#007400">"<font color="#1f32ff">$pi</font>->{Target} <font color="#1f32ff">$pi</font>->{Data}"</font><font color="#0000ff"><b>)</b></font>;</pre>}<BR><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#dcab68"><TD WIDTH="200"><A NAME="CODE8"></A><B>start_document</B></TD><TD>description</TD><TD WIDTH="30"><A HREF="#TOP">top</A></TD><TD WIDTH="30"><A HREF="#CODE7">prev</A></TD><TD WIDTH="30"><A HREF="#CODE9">next</A></TD></TR></TABLE><font color="#0000ff"><b>sub</b></font> <font color="#ff0000"><b>start_document</b></font> {<pre> <font color="#0000ff"><b>my</b></font> <font color="#0000ff"><b>(</b></font><font color="#1f32ff">$self</font>,<font color="#1f32ff">$document</font><font color="#0000ff"><b>)</b></font>=<font color="#1f32ff">@_</font>; <font color="#ff0000">## gather SVG constuctor attributes</font><BR> <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">%svg_attr</font>; <font color="#1f32ff">%svg_attr</font>=%<font color="#0000ff"><b>{</b></font><font color="#4169e1"><b>delete</b></font> <font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font>__svg_attr<font color="#0000ff"><b>}</b></font><font color="#0000ff"><b>}</b></font> <font color="#0000ff"><b>if</b></font> <font color="#4169e1"><b>exists</b></font> <font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font>__svg_attr<font color="#0000ff"><b>}</b></font>; <font color="#1f32ff">$svg_attr</font><font color="#0000ff"><b>{</b></font>-nostub<font color="#0000ff"><b>}</b></font>=1; <font color="#ff0000">## instantiate SVG document object</font><BR> <font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font>__svg<font color="#0000ff"><b>}</b></font>=<font color="#0000ff"><b>new</b></font> <font color="#ff8204">SVG</font><font color="#0000ff"><b>(</b></font><font color="#1f32ff">%svg_attr</font><font color="#0000ff"><b>)</b></font>; <font color="#ff0000">## empty element list</font><BR> <font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font>__elements<font color="#0000ff"><b>}</b></font>=<font color="#0000ff"><b>[</b></font><font color="#0000ff"><b>]</b></font>; <font color="#1f32ff">$self</font>-><font color="#ff8204">debug</font><font color="#0000ff"><b>(</b></font><font color="#007400">"Start"</font>,<font color="#1f32ff">$self</font>.<font color="#007400">"/"</font>.<font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font>__svg<font color="#0000ff"><b>}</b></font><font color="#0000ff"><b>)</b></font>;</pre>}<BR><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#dcab68"><TD WIDTH="200"><A NAME="CODE9"></A><B>start_element</B></TD><TD>description</TD><TD WIDTH="30"><A HREF="#TOP">top</A></TD><TD WIDTH="30"><A HREF="#CODE8">prev</A></TD><TD WIDTH="30"><A HREF="#CODE10">next</A></TD></TR></TABLE><font color="#0000ff"><b>sub</b></font> <font color="#ff0000"><b>start_element</b></font> {<pre> <font color="#0000ff"><b>my</b></font> <font color="#0000ff"><b>(</b></font><font color="#1f32ff">$self</font>,<font color="#1f32ff">$element</font><font color="#0000ff"><b>)</b></font>=<font color="#1f32ff">@_</font>; <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">$elements</font>=<font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font>__elements<font color="#0000ff"><b>}</b></font>; <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">$svg</font>=<font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font>__svg<font color="#0000ff"><b>}</b></font>; <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">$name</font>=<font color="#1f32ff">$element</font>-><font color="#0000ff"><b>{</b></font>Name<font color="#0000ff"><b>}</b></font>; <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">%attrs</font>=<font color="#4169e1"><b>map</b></font> <font color="#0000ff"><b>{</b></font> <font color="#1f32ff">$element</font>-><font color="#0000ff"><b>{</b></font>Attributes<font color="#0000ff"><b>}</b></font><font color="#0000ff"><b>{</b></font><font color="#1f32ff">$_</font><font color="#0000ff"><b>}</b></font><font color="#0000ff"><b>{</b></font>Name<font color="#0000ff"><b>}</b></font> => <font color="#1f32ff">$element</font>-><font color="#0000ff"><b>{</b></font>Attributes<font color="#0000ff"><b>}</b></font><font color="#0000ff"><b>{</b></font><font color="#1f32ff">$_</font><font color="#0000ff"><b>}</b></font><font color="#0000ff"><b>{</b></font>Value<font color="#0000ff"><b>}</b></font> <font color="#0000ff"><b>}</b></font> <font color="#4169e1"><b>keys</b></font> %<font color="#0000ff"><b>{</b></font><font color="#1f32ff">$element</font>-><font color="#0000ff"><b>{</b></font>Attributes<font color="#0000ff"><b>}</b></font><font color="#0000ff"><b>}</b></font>; <font color="#0000ff"><b>if</b></font> <font color="#0000ff"><b>(</b></font>@$elements<font color="#0000ff"><b>)</b></font> <font color="#0000ff"><b>{</b></font> <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">$parent</font>=<font color="#1f32ff">$elements</font>-><font color="#0000ff"><b>[</b></font>-1<font color="#0000ff"><b>]</b></font>; <font color="#4169e1"><b>push</b></font> @$elements, <font color="#1f32ff">$parent</font>-><font color="#ff8204">element</font><font color="#0000ff"><b>(</b></font><font color="#1f32ff">$name</font>,<font color="#1f32ff">%attrs</font><font color="#0000ff"><b>)</b></font>; <font color="#0000ff"><b>}</b></font> <font color="#0000ff"><b>else</b></font> <font color="#0000ff"><b>{</b></font> <font color="#1f32ff">$svg</font>-><font color="#0000ff"><b>{</b></font>-inline<font color="#0000ff"><b>}</b></font>=1 <font color="#0000ff"><b>if</b></font> <font color="#1f32ff">$name</font> <font color="#0000ff"><b>ne</b></font> <font color="#007400">"svg"</font>; <font color="#ff0000">##inlined</font><BR> <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">$el</font>=<font color="#1f32ff">$svg</font>-><font color="#ff8204">element</font><font color="#0000ff"><b>(</b></font><font color="#1f32ff">$name</font>,<font color="#1f32ff">%attrs</font><font color="#0000ff"><b>)</b></font>; <font color="#1f32ff">$svg</font>-><font color="#0000ff"><b>{</b></font>-document<font color="#0000ff"><b>}</b></font> = <font color="#1f32ff">$el</font>; <font color="#4169e1"><b>push</b></font> @$elements, <font color="#1f32ff">$el</font>; <font color="#0000ff"><b>}</b></font> <font color="#1f32ff">$self</font>-><font color="#ff8204">debug</font><font color="#0000ff"><b>(</b></font><font color="#007400">"Element"</font>,<font color="#1f32ff">$name</font><font color="#0000ff"><b>)</b></font>;</pre>}<BR><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#dcab68"><TD WIDTH="200"><A NAME="CODE10"></A><B>xml_decl</B></TD><TD>description</TD><TD WIDTH="30"><A HREF="#TOP">top</A></TD><TD WIDTH="30"><A HREF="#CODE9">prev</A></TD><TD WIDTH="30">next</TD></TR></TABLE><font color="#0000ff"><b>sub</b></font> <font color="#ff0000"><b>xml_decl</b></font> {<pre> <font color="#0000ff"><b>my</b></font> <font color="#0000ff"><b>(</b></font><font color="#1f32ff">$self</font>,<font color="#1f32ff">$decl</font><font color="#0000ff"><b>)</b></font>=<font color="#1f32ff">@_</font>; <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">$svg</font>=<font color="#1f32ff">$self</font>-><font color="#0000ff"><b>{</b></font>__svg<font color="#0000ff"><b>}</b></font>; <font color="#1f32ff">$svg</font>-><font color="#0000ff"><b>{</b></font>-version<font color="#0000ff"><b>}</b></font>=<font color="#1f32ff">$decl</font>-><font color="#0000ff"><b>{</b></font>Version<font color="#0000ff"><b>}</b></font> || <font color="#1f32ff">$self</font>->SVG_DEFAULT_DECL_VERSION; <font color="#1f32ff">$svg</font>-><font color="#0000ff"><b>{</b></font>-encoding<font color="#0000ff"><b>}</b></font>=<font color="#1f32ff">$decl</font>-><font color="#0000ff"><b>{</b></font>Encoding<font color="#0000ff"><b>}</b></font> || <font color="#1f32ff">$self</font>->SVG_DEFAULT_DECL_ENCODING; <font color="#1f32ff">$svg</font>-><font color="#0000ff"><b>{</b></font>-standalone<font color="#0000ff"><b>}</b></font>=<font color="#1f32ff">$decl</font>-><font color="#0000ff"><b>{</b></font>Standalone<font color="#0000ff"><b>}</b></font> || <font color="#1f32ff">$self</font>->SVG_DEFAULT_DECL_STANDALONE; <font color="#1f32ff">$self</font>-><font color="#ff8204">debug</font><font color="#0000ff"><b>(</b></font><font color="#007400">"XMLDecl"</font>,<font color="#007400">"-version=\"<font color="#1f32ff">$svg</font>->{-version}\""</font>, <font color="#007400">"-encoding=\"<font color="#1f32ff">$svg</font>->{-encoding}\""</font>,<font color="#007400">"-standalone=\"<font color="#1f32ff">$svg</font>->{-standalone}\""</font><font color="#0000ff"><b>)</b></font>;</pre>}<BR><A NAME="General"></A><HR><H2>General documentation</H2><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#4492df"><TD><A NAME="_pod_AUTHOR"><B>AUTHOR</A></B></TD><TD><A HREF="#TOP">top</A></TD></TR><TR><TD COLSPAN="2"><pre>Peter Wainwright, <a href="mailto:peter.wainwright@cybrid.net">peter.wainwright@cybrid.net</a><BR></pre></TD></TR><TR BGCOLOR="#4492df"><TD><A NAME="_pod_SEE ALSO"><B>SEE ALSO</A></B></TD><TD><A HREF="#TOP">top</A></TD></TR><TR><TD COLSPAN="2"><pre><a href="../../Parser.html" target="urlWin"><b>SVG::Parser</b></a>, <a href="../SAX.html" target="urlWin"><b>SVG::Parser::SAX</b></a><BR></pre></TD></TR></TABLE></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -