Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: Number of times I've used goto in Perl

by tlhf (Scribe)
on Mar 12, 2002 at 23:29 UTC ( [id://151263]=note: print w/replies, xml ) Need Help??


in reply to Number of times I've used goto in Perl

I know this topic is all kinds of old, but, I have a very short script which checks if multiple servers are online. I also wanted it so that via optional command line options $loop (boolean) and $time (integer) it would loop until all the servers are online. At this point it would beep a lot.

Yet rather than putting all the code in a big evil while() loop, or in a big evil sub, I thought sticking this at the bottom seemed to make a lot more sense, both code shortness and clarity-wise.

goto START if ($loop && sleep($time||300));

tlhf
xxx
I had always knew gotos were bad. Now I know that you can never know anything ;)

Replies are listed 'Best First'.
Re^2: Number of times I've used goto in Perl
by JavaFan (Canon) on Jun 08, 2010 at 12:58 UTC
    In the case of long running daemons, I prefer to write that as:
    exec $0, @ARGV if $loop && sleep ($time || 300);
    Of course, that assumes you aren't collecting stats over multiple loops.

    The advantage of using exec instead of a goto (or loop), is that if there's a memory leak somewhere (be it in your script, a module or library you use, or a in perl itself), it will accumulate with a loop, but not with an exec.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://151263]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (7)
As of 2024-06-14 14:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuli‥ 🛈The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.