On Thu, 09 May 2002, Gavin McCullagh wrote:
> Hi,
>> if I write a perl script and in it a subroutine like
>> #!/usr/bin/perl -w
>> use diagnostics;
> use strict;
>> &some_subroutine("1","2","3");
>> sub some_routine ($$$) {
> print "$_[0]\t$_[1]\t$_[2]\n";
> }
>>> It ws my understanding that if I called the subroutinewith anything other
> than three scalar variables, I should get a complaint. However I tried it
> out with {0,1,2,4} params and it just works on regardless.
>> Am I doing something wrong? Do I need to tell perl to enforce this?
It's because you're calling the subroutine with an "&" prefix. This
causes the the argument list to become optional, and prototype checking
is also disabled. For a bit more detail see the perlsub manpage, it's
described before the section on private variables[1].
John.
1. http://perldoc.com/perl5.005_03/pod/perlsub.html#Private-Variables-via-my()
--
John Gaughan, Systems Administrator
Irish Times New Media - http://www.ireland.com/
Maintained by the ILUG website team. The aim of Linux.ie is to
support and help commercial and private users of Linux in Ireland. You can
display ILUG news in your own webpages, read backend
information to find out how. Networking services kindly provided by HEAnet, server kindly donated by
Dell. Linux is a trademark of Linus Torvalds,
used with permission. No penguins were harmed in the production or maintenance
of this highly praised website. Looking for the
Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!