Madison,<br><br>The reason why you are experiencing this is because you are confusing procedural syntax &amp; semantics with object-oriented syntax and semantics.<br><br>Here is object-oriented.<br><br>use My::Module;<br>my $object = My::Module-&gt;new;
<br>my $result = $object-&gt;method(@args);<br><br>Internally within My/Module.pm it probably looks something like:<br><br>package My::Module;<br><br>sub new {<br>&nbsp; my $class = shift;<br>&nbsp; return bless {}, $class;<br>}<br>
<br>sub method {<br>&nbsp; my $self = shift;<br>&nbsp; my @params = @_;<br>&nbsp; ... # do stuff here<br>&nbsp; return $value;<br>}<br><br>Notice the &quot;my $self = shift;&quot; and the &quot;my $class = shift;&quot; lines.&nbsp; You need to understand what &quot;-&gt;&quot; means.
<br><br>I could write up a huge email on this subject but really that&#39;s a waste of effort when merlyn has already done it.&nbsp; Please read:<br><br><a href="http://perldoc.perl.org/perlboot.html">http://perldoc.perl.org/perlboot.html
</a><br><br>It is exactly about these concepts.<br><br>Also, do you really want to do OO perl?&nbsp; Maybe procedure Perl modules would work for your purposes.<br><br>Cheers,<br>Richard<br><br><div><span class="gmail_quote">On 9/7/07, 
<b class="gmail_sendername">Madison Kelly</b> &lt;<a href="mailto:linux@alteeve.com">linux@alteeve.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi all,<br><br>&nbsp;&nbsp; I am quite the module n00b, so please be gentle. :)<br><br>&nbsp;&nbsp; I&#39;ve got a few small, simple modules I&#39;ve written that handle some<br>simple functions I use often. What I want to be able to do though is:
<br><br>my $foo=My::Module-&gt;new();<br><br>&nbsp;&nbsp; Then be able to call the function/subroutines in there like this:<br><br>my $value=$foo-&gt;function($var1, $var2);<br><br>&nbsp;&nbsp; I had tried to do:<br><br>my $value=My::Module-&gt;function($var1, $var2);
<br><br>&nbsp;&nbsp; But the first value picked up in the function is the module name... I<br>don&#39;t think I should have to say in the module<br><br>sub function<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my ($null, $var1, $var2)=@_;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br>}<br>
<br>&nbsp;&nbsp; In order to do this. I don&#39;t like just calling the function name (as<br>I currently do) because some of the funtion names are ambiguous. For<br>example, one module is used to validate form values. So the function
<br>&#39;phone&#39;, &#39;int_num&#39;, &#39;real_num&#39; and so on are provided by &#39;NV::Validate&#39;.<br>If I want to validate the phone number then, I&#39;d call:<br><br>my ($valid)=phone($form_phone_num);<br><br>
&nbsp;&nbsp; This is fairly ambiguous, and I&#39;d much rather say either:<br><br>my $validate=NV::Validate-&gt;new();<br>my ($value)=$validate-&gt;phone($form_phone_num);<br><br>&nbsp;&nbsp; Or<br><br>my ($value)=NV::Validate-&gt;phone($form_phone_num);
<br><br>&nbsp;&nbsp; But not have the first variable passed being the module name.<br><br>Any tips, pointers or such? Would it help to show some code samples from<br>my module?<br><br>&nbsp;&nbsp; Thanks!<br><br>Madison<br>_______________________________________________
<br>toronto-pm mailing list<br><a href="mailto:toronto-pm@pm.org">toronto-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/toronto-pm">http://mail.pm.org/mailman/listinfo/toronto-pm</a><br></blockquote></div>
<br>