in reply to First Perl Module!!

This is because in perl when a method is called the calling thing (be it the class name or object) is passed in as the first argument e.g
sub func { print "first arg: $_[0]\n" } my $o = bless []; main->func(); $o->func(); __output__ first arg: main first arg: main=ARRAY(0x80fbb0c)
So in the first case the string main is being passed in as that's what the method was called on, and in the second case the object $o. With that in mind you're test() method should look something like this
sub test{ my( $self, $name ) = @_; return $name; }
See. perltoot for more information on methods.
HTH

_________
broquaint