Well the code looks ok. 

I just wrote some simple test code to do the same thing like you, but
it worked as exepcted. Are there some differeces between that example
and your code?

HTH

% ls
Module.pm  test.pl
% cat Module.pm
#!/usr/bin/perl -w
use strict;
require Exporter;
our @ISA = qw/Exporter/;
our @EXPORT = qw/do_sth/;

sub do_sth {
        print "done\n";
}

1;
% cat test.pl
#!/usr/bin/perl -w
use strict;
use Module;

do_sth();
% perl test.pl
done
%



On Thu, 14 Jun 2007 22:22:06 -0400
Mathew Snyder <[EMAIL PROTECTED]> wrote:

> I fixed all of the bugs save one.  I can't access any of my subroutines 
> without
> explicitly using it with dates_emails::subroutine.  I was under the impression
> that if I was exporting them all from the module, the subroutine would be 
> found
> regardless.
> 
> package dates_emails;
> require Exporter;
> use strict;
> 
> our @ISA         = qw(Exporter);
> our @EXPORT      = qw(startDate, endDate, searchStart, searchEnd);
> our @EXPORT_OK   = qw($emailTo, $emailFrom, $emailBcc);
> our %EXPORT_TAGS = {
>                 dates  => [qw(startDate, endDate, searchStart, searchEnd)],
>                 emails => [qw($emailTo, $emailFrom, $emailBcc)],
>                 };
> our $VERSION     = '1';
> 
> It doesn't even work with 'use dates_emails("dates");'.  I get an error that
> dates is not an exported subroutine.  I don't understand what I'm not doing
> right as I've got the %EXPORT_TAGS hash set up, I've got the @EXPORTS array 
> set
> up.  I've got this in my opening block:
> use lib '/usr/local/bin/lib/';
> use dates_emails;
> 
> Any thoughts?
> 
> Mathew
> Keep up with me and what I'm up to: http://theillien.blogspot.com
> 
> 
> Martin Barth wrote:
> > Hi,
> > 
> > try:
> > 
> > use lib "/usr/local/bin/lib/";
> > use dates_email;
> > 
> > HTH Martin
> > 
> > On Thu, 14 Jun 2007 01:50:57 -0400
> > Mathew Snyder <[EMAIL PROTECTED]> wrote:
> > 
> >> To take this further I've changed the code.  It now looks like this:
> >>
> >> package dates_emails;
> >> require Exporter;
> >> use strict;
> >>
> >> our @ISA         = qw(Exporter);
> >> our @EXPORT      = qw(startDate, endDate, searchStart, searchEnd);
> >> our @EXPORT_OK   = qw($emailTo, $emailFrom, $emailBcc);
> >> our %EXPORT_TAGS = {
> >>                 dates  => [qw(startDate, endDate, searchStart, searchEnd)],
> >>                 emails => [qw($emailTo, $emailFrom, $emailBcc)],
> >>                 };
> >> our $VERSION     = '1';
> >>
> >> # Declare our global variables
> >> my (@days, @months, @years, @searchDate);
> >> my $time = time();
> >>
> >> our $emailTo      = "[EMAIL PROTECTED]";
> >> our $emailFrom    = "RT";
> >> our $emailBcc     = "[EMAIL PROTECTED]";
> >>
> >> sub getDates {
> >>         for (1 .. 7) {
> >>                 $time -= 24*60*60;
> >>                 my @date = (localtime($time))[3 .. 5];
> >>                 push @days, (sprintf '%02d', $date[0]);
> >>                 push @months,(sprintf '%02d',$date[1] + 1);
> >>                 push @years, $date[2] + 1900;
> >>                 return;
> >> }
> >>
> >> sub searchDate {
> >>         getDates();
> >>         push @searchDate, join "-", ($date[2] + 1900), (sprintf 
> >> '%02d',$date[1]
> >> + 1),
> >> (sprintf '%02d', $date[0]);
> >>         return [EMAIL PROTECTED];
> >> }
> >>
> >> sub startDate {
> >>         getDates();
> >>         $startDate   = join "-", $months[$#months], $days[$#days], 
> >> $years[$#years];
> >>         return $startDate;
> >> }
> >>
> >> sub endDate {
> >>         getDates();
> >>         $endDate     = join "-", $months[0], $days[0], $years[0];
> >>         return $endDate;
> >> }
> >>
> >> sub searchStart {
> >>         getDates();
> >>         $searchStart = join "-", $years[$#years], $months[$#months], 
> >> $days[$#days];
> >>         return $searchStart;
> >> }
> >>
> >> sub searchEnd {
> >>         getDates();
> >>         $searchEnd   = join "-", $years[0], $months[0], $days[0];
> >>         return $searchEnd;
> >> }
> >>
> >> return 1;
> >>
> >> I've placed it in its own directory /usr/local/bin/lib.  I've tried using
> >> use '/usr/local/bin/lib/dates_email';
> >> use '/usr/local/bin/lib/dates_email.pm';
> >> use '/usr/local/bin/lib/dates_email qw/startDate/;
> >> use '/usr/local/bin/lib/dates_email.pm qw/startDate/';
> >> use '/usr/local/bin/lib/dates_email qw/"startDate"/;
> >> use '/usr/local/bin/lib/dates_email.pm qw/"startDate"/';
> >> use '/usr/local/bin/lib';
> >>
> >> Each one gives me the error "Undefined subroutine &dates_emails::startDate
> >> called at ./created_tickets.pl line 19.".  Anyone know what I'm doing 
> >> wrong?
> >>
> >> Mathew
> >> Keep up with me and what I'm up to: http://theillien.blogspot.com
> >>
> >>
> > 
> > 
> > 
> 

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to