in reply to Re: making a library
in thread making a library

Hi, I tried using your method :
Foo1::bar();
but it shows error "undefined subroutine &Foo1::bar()called"

Replies are listed 'Best First'.
Re^3: making a library
by NetWallah (Canon) on Mar 09, 2011 at 04:51 UTC
    Looks like you did not "use Foo1;" before attempting to call the class method.

    Here is pared-down working code: First, the Foo1.pm file

    package Foo1; use strict; sub bar { print "Hello (FIRST Param=$_[0]) (Second-param=$_[1])\n"; } 1;
    Now the code to call Foo1:
    use strict; use warnings; use Foo1; my $obj = bless {},"Foo1"; $obj->bar( "Instance Method"); # Calling an instance method. # this passes DIFFERENT parameters than the class method. Foo1::bar("Class Method call"); Foo1->bar("Pseudo-method call");
    Results:
    Hello (FIRST Param=Foo1=HASH(0xa165818)) (Second-param=Instance Method +) Hello (FIRST Param=Class Method call) (Second-param=) Hello (FIRST Param=Foo1) (Second-param=Pseudo-method call)

         Syntactic sugar causes cancer of the semicolon.        --Alan Perlis