&lt;!DOCTYPE programlistingco PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"&gt;
&lt;programlistingco&gt;
&lt;areaspec&gt;
&lt;areaset id="ex.plco.const" coords=""&gt;
  &lt;area id="ex.plco.c1" coords='4'/&gt;
  &lt;area id="ex.plco.c2" coords='8'/&gt;
&lt;/areaset&gt;
&lt;area id="ex.plco.ret" coords='12'/&gt;
&lt;area id="ex.plco.dest" coords='12'/&gt;
&lt;/areaspec&gt;
&lt;programlisting&gt;
sub do_nothing_useful {
    my($a, $b, $c);

    $a = new A;
    
    $a-&gt;does_nothing_either();

    $b = new B; 

    $c = "frog";

    return ($a, $c);
}
&lt;/programlisting&gt;
&lt;calloutlist&gt;
&lt;callout arearefs="ex.plco.const"&gt;
&lt;para&gt;
These are calls to the constructor &lt;function&gt;new&lt;/function&gt; in the object
classes.
&lt;/para&gt;
&lt;/callout&gt;
&lt;callout arearefs="ex.plco.ret"&gt;
&lt;para&gt;
This function returns a two-element list.
&lt;/para&gt;
&lt;/callout&gt;
&lt;callout arearefs="ex.plco.dest"&gt;
&lt;para&gt;
The &lt;emphasis&gt;destructor&lt;/emphasis&gt; (&lt;function&gt;DESTROY&lt;/function&gt;) for
the object &lt;literal&gt;$b&lt;/literal&gt; will be called automatically for this
object since there can be no other references to it outside this function.
&lt;/para&gt;
&lt;/callout&gt;
&lt;/calloutlist&gt;
&lt;/programlistingco&gt;