On Tue, 17 Apr 2012 12:27:32 +0100 Gary Stainburn <gary.stainb...@ringways.co.uk> wrote:
> On Monday 16 April 2012 15:20:35 Paul Johnson wrote: > > On Mon, Apr 16, 2012 at 06:53:53AM -0700, Paul.G wrote: > > > Hi All > > > > > > Have a question, is it good coding practice to use a & when > > > calling a subroutine, or it is not required, or it doesn't matter? > > > > It's good practice not to use it unless you understand exactly why > > you would need to use it. > > Could someone please expand on this as I seem to always have to do > this. If I 'use strict' and 'use warnings' I get errors if I don't. > One example is this: #! /usr/bin/perl use strict; use warnings; mysub; sub mysub { print "Hi there\n"; } If you run this you get an error: Bareword "mysub" not allowed while "strict subs" in use at ./testsub.pl line 6. Execution of ./testsub.pl aborted due to compilation errors. Perl tells you that it has no idea what you mean when you use the bareword mysub. Now you have two options to solve it. 1. &mysub; Using the sigil & you tell Perl that mysub is a subroutine. 2. mysub(); Usind () after mysub you also tell Perl that mysub is a subroutine. 3. &mysub(); Combining 1. and 2. works also but is not recommended. Hmm, at least I do no recommend it. Use 2. and you'll be happy. There are surely some other situations where using & might be appropriate. But this one came into my mind immediately. -- Manfred -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/