All:

 

I'm having problems trying to get Perl function prototype checking
working correctly.

 

My code looks something like:

 

 

main.pl:

      use a;

 

 

a.pm:

      use b;

      use c;

 

b.pm:

      sub b_function ($$$) {

      }

 

c.pm:

      use d;

 

d.pm:

      b_function($p1);

 

I'm expecting to get a compilation error for the subroutine call in
d.pm, since it calls "b_function" with a single scalar as a parameter,
instead of the required 3 scalars as parameters.

 

A trivial test case that looks like:

 

main.pl:

 

            sub a ($$$) {

            }

 

            a($x);

 

fails as expected with a compilation failure on the wrong number of
parameters passed to "a", but my application that looks like the above
code (although it's much bigger!) does not cause a compilation failure
when the wrong number of parameters are passed.

 

My .pm files only contain subroutine definitions, they have no package
statements. The lack of a package statement doesn't appear to change the
problem, however for simple cases I've constructed using a set of "use"
statements.

 

My Perl version info is:

 

$ perl -v

 

This is perl, v5.8.7 built for cygwin-thread-multi-64int

 

Copyright 1987-2005, Larry Wall

 

Perl may be copied only under the terms of either the Artistic License
or the

GNU General Public License, which may be found in the Perl 5 source kit.

 

Complete documentation for Perl, including FAQ lists, should be found on

this system using `man perl' or `perldoc perl'.  If you have access to
the

Internet, point your browser at http://www.perl.org/, the Perl Home
Page.

 

I'm running Perl under Cygwin on Windows XP.

 

Regards,

Gavin Bowlby

 

Reply via email to