On Fri, May 24, 2013 at 03:18:35PM -0400, shawn wilson wrote:
> How do I find the next subnet? This should print 192.168.1.0 the
> second time - it errors:

[code deleted]
Why should it? The Net::IP documentation doesn't provide any information about 
actions that cross the subnet boundry.

Having said that, it seems it doesn't allow that operation.  
And in fact, many of the methods don't work after incrementing, which seems 
wrong to me:

#!/usr/bin/perl
use strict;
use warnings;
use Net::IP;

my @method_types = qw ( ip short binip intip mask last_ip prefixlen size iptype 
reverse_ip );

my $ip = Net::IP->new('192.168.0.0/24');        # three lines from your code
print "Start ip [" . $ip->ip . "]\n";
print "start mask [" . $ip->prefixlen . "]\n";

$ip++;
print "After incrementing by 1\n";
show_methods($ip);

$ip->set($ip->last_ip) ;
$ip++ ;
print "\nAfter incrementing past last_ip\n";
show_methods($ip);


sub show_methods {
    my ($ip) = @_;
    
    print "now at " . $ip->ip ,$/;

    for my $type ( @method_types) {
        if( $ip->$type ) {
            print "$type : ", $ip->$type(), $/;
        }
        else {
            print "no more $type\n";
        }
    }            
}


__END__

michael@bivy:~/rmme$ ./tpl
Start ip [192.168.0.0]
start mask [24]
After incrementing by 1
now at 192.168.0.1
ip : 192.168.0.1
short : 192
binip : 11000000101010000000000000000001
intip : 3232235521
no more mask
last_ip : 192.168.0.255
no more prefixlen
size : 255
iptype : PRIVATE
no more reverse_ip

After incrementing past last_ip
Can't call method "ip" on an undefined value at ./tpl line 29.
michael@bivy:~/rmme$ 


 

-- 
            Michael Rasmussen, Portland Oregon  
          Be Appropriate && Follow Your Curiosity
  Other Adventures: http://www.jamhome.us/ or http://gplus.to/MichaelRpdx
A special random fortune cookie fortune:
Only the mediocre are always at their best.
        ~ Jean Giraudoux, French Novelist
(rephrased as "Only the mediorcre are at their best all the time." 
    ~ G.M. Ford in "Who the hell is Wanda Fuca?")

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to