Rob Richardson wrote:
> Greetings!
> 
> I have the following class in a .pm file:
> 
> use warnings;
> use strict;
> package ScheduleDay;
> 
> use Train;
> 
> sub new
> {
>       my $self = {};  # $self is a reference to an anonymous, empty (for
> now) hash
>       bless $self;
>       return $self;
> }

n.b. this constructor is not inheritable if you ever derive a subclass from
ScheduleDay. You might want to consider using:

   sub new {
      my $class = shift;
      $class = ref $class || $class;
      bless {}, $class;
   }

> 
> sub AddTrain
> {
>       my $self = shift;
>       my $trainName = $_[0];
>       # $self->{$trainName} = new Train;
>       # $self->{$trainName}->Load(@_);
>       print "   Added train named ", $trainName, "<br>"; }
> 
> "Where no one has gone before!";
> 
> 
> When I run perl -c on this, I get the following messages:
> Subroutine new redefined at Train.pm line 106.

This is likely a problem in Train.pm, which you didn't share with us. Do you
get the same message from perl -c Train.pm?

> Useless use of a constant in void context at scheduleday.pm line 24.

A warning for the phrase. If you don't like the warning, replace the phrase
with the more idiomatic literal 1;

> scheduleday.pm syntax OK 

So scheduleday.pm compiles OK. But it should be named ScheduleDay.pm.

> 
> What is going on here?  Why can't I have a class that uses another
> class and have both classes have a "new" method?  What do I have to
> do to get this scoped correctly? 

You can have this. Your problems lie elsewhere.

> 
> Also, I am getting strange behavior when running this through Internet
> Explorer.

Running what through Internet Explorer? Assuming code not in evidence :~)

> If the print statement in AddTrain() is modified to avoid
> the use of $trainName, the program runs as expected and IE displays a
> page with one line of print for every train I try to add.  However, if
> I try to print the name of the train as contained in $printName (and
> as shown above), the result age is never displayed and IE just waits
> and waits and waits for something that never happens.

???

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

Reply via email to