Re: Am I going nutts ? - read before answering!
On Thu, Mar 08, 2001 at 02:59:27PM +, Robert Price wrote: I think the answer is that both the modules where the BEGINS are called twice have "use" in them. "use" means "BEGIN {require Module}", so BEGIN is being called once when the module is entered, and once when it is used. Rob - SNIP - Fraid not.. tried moving the use out of the BEGIN before and it made no difference: package LTest; use Test2; BEGIN { warn "Test is beginning\n"; } print "Here\n"; 1; Thanks Leo
Re: Am I going nutts ? - read before answering!
At 02:52 PM 3/8/01 +, you wrote: On Thu, Mar 08, 2001 at 02:59:27PM +, Robert Price wrote: I think the answer is that both the modules where the BEGINS are called twice have "use" in them. "use" means "BEGIN {require Module}", so BEGIN is being called once when the module is entered, and once when it is used. Rob - SNIP - Fraid not.. tried moving the use out of the BEGIN before and it made no difference: package LTest; use Test2; BEGIN { warn "Test is beginning\n"; } [snip] But you are still calling "use", and as I said earlier, that means there are still 2 BEGIN blocks, so both are being called. Test2 only has the one BEGIN call because it doesn't try to use. For example, your code is roughly the same as... package LTest; BEGIN {require Test2}; BEGIN { warn "Test is beginning\n"; } So you can see there are two BEGIN blocks that are being called. Or am I talking out of my arse? :-) Rob -- Robert Price - Technical Manager - EMAP Digital Travel | Tel: 0207 3092711 Priory Court, 30-32 Farringdon Lane, London, EC1R 3AW | Fax: 0207 3092718
Re: Am I going nutts ? - read before answering!
Oh, actually do you mean it is the same at: pageage LTest; BEGIN {require Test2} BEGIN { warn "." } print "Here\n" 1; Ok, that kind'a make sence.. Cheers Leo - who is slowly getting there. On Thu, Mar 08, 2001 at 02:52:48PM +, Leo Lapworth wrote: On Thu, Mar 08, 2001 at 02:59:27PM +, Robert Price wrote: I think the answer is that both the modules where the BEGINS are called twice have "use" in them. "use" means "BEGIN {require Module}", so BEGIN is being called once when the module is entered, and once when it is used. Rob - SNIP - Fraid not.. tried moving the use out of the BEGIN before and it made no difference: package LTest; use Test2; BEGIN { warn "Test is beginning\n"; } print "Here\n"; 1; Thanks Leo
Re: Am I going nutts ? - read before answering!
Leo Lapworth wrote: BEGIN { You forgot here: warn "In A.D. 2101\n"; warn "Test is beginning\n"; } print "Here\n"; And this should be 'print "What happen?\n";'. Cheers, Phi "SCNR" lip -- Philip Newton [EMAIL PROTECTED] All opinions are my own, not my employer's. If you're not part of the solution, you're part of the precipitate.
Re: Am I going nutts ? - read before answering!
Yup, that's right. So to get it to only have the one call, change your "use" to a require and put it in the BEGIN block. nitpick number="1" use fred; Will also call fred-import(), so you might want to emulate that too. /nitpick nitpick number="2" type="lesser" -- Robert Price - Technical Manager - EMAP Digital Travel | Tel: 0207 3092711 Priory Court, 30-32 Farringdon Lane, London, EC1R 3AW | Fax: 0207 3092718 Shouldn't these numbers be formatted 020 7XXX Later. Mark. /nitpick -- print "\n",map{my$a="\n"if(length$_6);' 'x(36-length($_)/2)."$_\n$a"} ( Name = 'Mark Fowler',Title = 'Technology Developer' , Firm = 'Profero Ltd',Web = 'http://www.profero.com/' , Email = '[EMAIL PROTECTED]', Phone = '+44 (0) 20 7700 9960' )
Re: Am I going nutts ? - read before answering!
[snipped my numbers formated as 0207 XX] Shouldn't these numbers be formatted 020 7XXX Sh, it's designed to try to fool the sales bunnies. Rob