I do not think that means what you think that means. :)<br><br>Can I ask why you&#39;re doing &quot;use base qw(Net::DBus::Object);&quot; as opposed to &quot;use Net::DBus::Object;&quot; ?  The &#39;use base&#39; is nonsensical in this context as it&#39;s modifying the @ISA array.  It&#39;s essentially saying &quot;This class is a subclass of Net::DBus::Object&quot; and not actually making any part of Net::DBus::Object available to you.  I suspect just doing use Net::DBus::Object and you&#39;ll be fine.<br>
<br>Though I&#39;m hardpressed to explain why, using &quot;require&quot; instead of &quot;use&quot; seems to be more canonical when dynamically loading modules.  I&#39;m sure someone far smarter than I on this list could explain that.  I suspect it&#39;s the difference between bareword and string (bareword loads a module, string loads the filename specifically instead of searching %INC for it).  There&#39;s also import voodoo that won&#39;t happen (unless you do the voodoo yourself) but if you&#39;re only loading OO modules this shouldn&#39;t be a big deal. <br>
<br>D<br>--<br clear="all"><a href="mailto:dave.s.doyle@gmail.com">dave.s.doyle@gmail.com</a><br>
<br><br><div class="gmail_quote">On Wed, Dec 9, 2009 at 9:49 PM, Madison Kelly <span dir="ltr">&lt;<a href="mailto:linux@alteeve.com">linux@alteeve.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hi all,<br>
<br>
  This may be due to my ignorance, but I am having a problem that I don&#39;t *think* I should be.<br>
<br>
  I&#39;ve got a set of methods in my module that loads various other modules wrapped in &#39;eval&#39;s so that I can handle missing modules a little more gracefully. All of these work except one.<br>
<br>
  For example; This works:<br>
<br>
-----------------------------------------<br>
# Script<br>
use AN::Tools;<br>
my $an=AN::Tools-&gt;new();<br>
$an-&gt;_load_net_dbus();<br>
<br>
# Module<br>
sub _load_net_dbus<br>
{<br>
        my $self=shift;<br>
        <br>
        eval &#39;use Net::DBus;&#39;;<br>
        if ($@)<br>
        {<br>
                print &quot;Gak! $@\n&quot;;<br>
                return (undef);<br>
        }<br>
        else<br>
        {<br>
                # Good, record it as loaded.<br>
                $self-&gt;_net_dbus_loaded(1);<br>
                print &quot;Net::DBus loaded.\n&quot;;<br>
        }<br>
        <br>
        return (0);<br>
}<br>
-----------------------------------------<br>
<br>
  Now though, I&#39;ve got one that doesn&#39;t... The main difference that I can see is the &#39;use base ...&#39;.<br>
<br>
-----------------------------------------<br>
# Script<br>
$an-&gt;_load_net_dbus_object();<br>
<br>
# Module<br>
sub _load_net_dbus_object<br>
{<br>
        my $self=shift;<br>
        <br>
        eval &#39;use base qw(Net::DBus::Object);&#39;;<br>
        if ($@)<br>
        {<br>
                print &quot;Gak! $@\n&quot;;<br>
                return (undef);<br>
        }<br>
        else<br>
        {<br>
                # Good, record it as loaded.<br>
                $self-&gt;_net_dbus_object_loaded(1);<br>
                print &quot;Net::DBus::Object loaded.\n&quot;;<br>
        }<br>
        <br>
        return (0);<br>
}<br>
-----------------------------------------<br>
<br>
  It *looks* like it loads in that &#39;$@&#39; isn&#39;t set. However, when I try to use any of the methods in Net::DBus::Object, it errors.<br>
<br>
  Is there something about &#39;base&#39; that could be messing this up or is it something else? For testing, if I check that the &#39;$an-&gt;_load_net_dbus_object();&#39; call returns &#39;0&#39; and then call:<br>
<br>
eval &#39;use base qw(Net::DBus::Object);&#39;;<br>
<br>
  From the main script, it does work, so it doesn&#39;t seem to be the eval itself that&#39;s the problem.<br>
<br>
Thanks all!<br>
<br>
Madi<br>
_______________________________________________<br>
toronto-pm mailing list<br>
<a href="mailto:toronto-pm@pm.org" target="_blank">toronto-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/toronto-pm" target="_blank">http://mail.pm.org/mailman/listinfo/toronto-pm</a><br>
</blockquote></div><br>