Greetings!

I wrote the following trivial module:

package Trace;

sub trace
{
        my $message = shift;
        open (TRACE, ">>c:\\indigoperl\\htdocs\\data\\trace.log") or die
"Could not open trace file: $!\n";
        print TRACE $message;
        close TRACE;
}

my $motto = "Who invented this furshlugginer language anyway?";


I used it in the following even more trivial script:

#!/usr/bin/perl

use warnings;
use strict;

use Trace qw(trace);

trace ("This is from the tracetest program.\n");


As you are no doubt aware, this didn't work.  Perl complained that it
didn't know about &main::trace().  I modifed the module by adding the
following lines after "package Trace":

require Exporter;
@ISA = qw(Exporter);
@EXPORT_OK = qw(trace);

Once I had those lines in, the script worked.


In the train schedule script that you are no doubt sick of hearing
about by now, my main program has the following lines:

use Schedule;
my $theSchedule = new Schedule;
$theSchedule->Load("somefile.csv");

The file schedule.pm has a line that says, "package Schedule;", but no
use of the Exporter module.  The other modules I am using to represent
other objects in the system don't use Exporter either.  Yet I can use
the objects and their methods without prefacing them with a symbol
name.  Why don't I need a package name with them?  Is it because I am
using them in an object-oriented way?

Thanks!

RobR



__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to