you mean something like this :
eval { $address='Net::Address::IP::Local'->public =~ m/^(\d\d?\d?)\.(\d\d?\d?)\.(\d\d?\d?)\.(\d\d?\d?)$/ }; warn $@ if $@;
| [reply] |
perl -E '
use strict;
use warnings;
my $output;
say "successful statement";
$output = eval {my $c = 4 + 5;};
printout ($output, $@);
say "division by 0";
$output = eval {my $c = 4/0;};
printout ($output, $@);
say "statement with die";
$output = eval {die "I am dieing\n";};
printout ($output, $@);
sub printout {
my ($out, $diag) = @_;
say $out, "\t", $diag, "\n" if defined $out;
say "\t\t$diag" unless defined $out;
}
'
successful statement
9
division by 0
Illegal division by zero at -e line 12.
statement with die
I am dieing
| [reply] [d/l] [select] |
Bonjour,
I tried something like this :
use strict;
use warnings;
use Net::Address::IP::Local;
print ReturnIpAddress();
sub ReturnIpAddress
{
my $address;
select STDOUT;
eval{
$address = 'Net::Address::IP::Local'->public ; ## Rece
+iving the current IP ##
};
if ($@)
{
print "$@";
return '192.80.160.16'; ##If No IP address received th
+en return a static IP of order "192....."
}
else
{
return $address;
}
}
And i got error again like this :
C:\shekhar_Axestrack_Intern\WindowCreation>ccc.pl
Unable to create UDP socket: A socket operation was attempted to an un
+reachable
network. at C:/Perl/site/lib/Net/Address/IP/Local.pm line 166.
192.80.160.16
Any solution. Please note that this problem occurs when i disconects the internet and then execute the code (i am under such situation). Any other way to handle this problem ? (To test the code you will need to resatrt the PC and with internet turnoff otherwise it still keeps store the IP of the time of connection and print the IP but when we restart PC then we will not have that previous IP) | [reply] [d/l] [select] |