Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

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

by tlhf (Scribe)
on Mar 12, 2002 at 23:29 UTC ( #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));

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

Comment on Re: Number of times I've used goto in Perl
Download Code
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?

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

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (5)
As of 2015-11-26 19:59 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (706 votes), past polls