Re: Passing a variable to a package function vs. a local function
On Sun, Sep 28, 2003 at 11:48:19PM -0700, Dan Fish wrote: > sub myfunc{ my ($query) = @_; > $foo=$query->param("foo"); > ...more...blah...blah... > } > > Everything works fine as is, but I'm trying to take the function "myfunc" > out and put it in a separate .pm file because I need to call it from several > cgi scripts. When I put it in the .pm file, I get something like: > > Can't locate object method "param" via package "Trend" at > /usr/local/lib/perl5/site_perl/5.005/MMC/Dex.pm line 253, chunk > 1150. Either use the pure subroutine call instead of the method call. Trend::myfunc( $query ); Or use the method call, and know that the first argument will be the class/object on which the method was invoked. package Trend; sub myfunc { my ($package, $query) = @_; ... } package main; Trend->myfunc( $query ); -- Steve -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Passing a variable to a package function vs. a local function
Dan Fish wrote: I'm a bit new to this so please bear with me... I've written a script that uses CGI.pm something like this: use CGI::Carp qw(fatalsToBrowser); use CGI qw(:all); $query = new CGI; blah...blah... &myfunc($query); blah...blah... sub myfunc{ my ($query) = @_; $foo=$query->param("foo"); ...more...blah...blah... } Everything works fine as is, but I'm trying to take the function "myfunc" out and put it in a separate .pm file because I need to call it from several cgi scripts. When I put it in the .pm file, I get something like: Can't locate object method "param" via package "Trend" at /usr/local/lib/perl5/site_perl/5.005/MMC/Dex.pm line 253, chunk 1150. I do have: use CGI::Carp qw(fatalsToBrowser); use CGI qw(:all); In the .pm file What am I missing? Thanks, -Dan If you have name the package file as say Mypackage.pm then in your mail program you will call the function as Mypackage::myfunc($query). Ram -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Passing a variable to a package function vs. a local function
I'm a bit new to this so please bear with me... I've written a script that uses CGI.pm something like this: use CGI::Carp qw(fatalsToBrowser); use CGI qw(:all); $query = new CGI; blah...blah... &myfunc($query); blah...blah... sub myfunc{ my ($query) = @_; $foo=$query->param("foo"); ...more...blah...blah... } Everything works fine as is, but I'm trying to take the function "myfunc" out and put it in a separate .pm file because I need to call it from several cgi scripts. When I put it in the .pm file, I get something like: Can't locate object method "param" via package "Trend" at /usr/local/lib/perl5/site_perl/5.005/MMC/Dex.pm line 253, chunk 1150. I do have: use CGI::Carp qw(fatalsToBrowser); use CGI qw(:all); In the .pm file What am I missing? Thanks, -Dan -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]