Brad Baxter wrote:
> luke devon wrote:
>> Thanks for every one who tried to help me. but all were unsuccessful and I
>> would like to submit my tries for your consideration.
>>
>> This is how its done.
>> $ip = substr($ip, 0, (length($ip)-2));
>
> (Please put your comments below others'.)
>
> If that's how it's done, then you haven't given us very
> good examples.
>
>
> # I am storing IP in to a varable , $ip="172.22.8.10 \-";
>
> {
> my $ip="172.22.8.10 \\-"; # that '\' has to be escaped
> $ip =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/;
> $ip = $1;
>
> # prints: [172.22.8.10], i.e., it works fine
> print "[$ip]\n";
> }
>
> # I am receiving IP value as 192.168.10.5/ -
>
> {
> my $ip="192.168.10.5/ -";
> $ip =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/;
> $ip = $1;
>
> # prints: [192.168.10.5], i.e., it works fine
> print "[$ip]\n";
> }
>
> # This is how its done.
> # $ip = substr($ip, 0, (length($ip)-2));
>
> for my $input (
> "172.22.8.10 \-", # that's really just "172.22.8.10 -"
> "172.22.8.10 \\-",
> "192.168.10.5/ -"
> ) {
> my $ip = substr($input, 0, (length($input)-2));
>
> # prints:
> # [172.22.8.10] [172.22.8.10 ] [192.168.10.5/]
> # The first one looks correct, because your input is faulty
> # The other two are not correct
> print "[$ip] ";
> }
>
> __END__
> [172.22.8.10]
> [192.168.10.5]
> [172.22.8.10] [172.22.8.10 ] [192.168.10.5/]
(Nice to find a man who can use apostrophes :)
I would write it as below, which works for all of these cases. I don't think
there's any need to validate the IP address: it's simply a matter of finding it
in the string.
Rob
use strict;
use warnings;
my $ip = '"172.22.8.10 \-';
($ip) = $ip =~ /[0-9.]+/g;
print "|$ip|\n";
**OUTPUT**
|172.22.8.10|
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/