Dear Monks,
The following code is used to check the status of the network. The logic is, I am executing ping command with two different IP address. If first one failure only, it will goto second one.
#!/usr/bin/perl
use strict;
use warnings;
# register signal.
$SIG{'INT'} = 'Handler';
# declaring variable.
my ($ip1, $ip2, $to, $exit_value1, $exit_value2, $flag);
# this flag is used to avoid the repeat
# execution when execute the second ping
# with second IP address.
$flag=0;
# initializing IP address.
$ip1 = "192.168.0.0"; # first IP address
$ip2 = "google.com"; # second IP address.
# execute the ping with first IP address.
do { eval { $exit_value1 = `ping $ip1`; } };
exit; # if it is working fine, exit the program.
# execute the ping with second IP address.
Exec:
print "$ip2\n";
$flag=1; # reset the flag to avoid repeat
# execute second ping with different IP address.
do { eval { $exit_value2 = `ping $ip2`; } };
# it is a signal handle for SIGINT signal.
sub Handler {
# alert message to user.
print "Caught SIGINT: $?\n";
# if the first ping command is failure, goto second,
if (($? != 0) and ($flag == 0)) {
goto Exec;
}
exit(0);
}
The if condition in handler is true when the first ping failure. But the goto statement inside if condition does not working. Please tell me where I did the mistake?
Note: I used eval instead of setjmp. I don't get any error or warning message for that.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link or
or How to display code and escape characters
are good places to start.
|