#!/usr/bin/perl use strict; use warnings; use Switch; use MyIP; my %int; my $cur_int=""; open (CONF, "ipplan.cfg") or die "file does not exist\n"; while () { switch ($_) { case /^interface / { (undef, $cur_int, undef) = split / /; $int{$cur_int}{ip}=""; } case /^ ip address [\d\.]+ [\d\.]+$/ { my (undef, undef, $ip, $mask, undef) = split / /; $int{$cur_int}{ip}=new MyIP ($ip, $mask) or die "incorrect IP address: $ip $mask\n"; print "$cur_int: $ip $mask = ", $int{$cur_int}{ip}->print_cidr(), "\n"; } } close CONF; foreach my $key (keys %int) { print "int $key \n"; print " ip address ",$int{$key}{ip}->print_cidr(), "\n"; } #### Loopback0: 172.25.10.10 255.255.255.255 = 172.25.10.10/32 int Loopback0 Can't call method "print_cidr" without a package or object reference at ./conf.pl line 83. #### foreach my $key (keys %int) { print "int $key \n"; print " ip address ",$int{$key}{ip}, "\n"; } #### Loopback0: 172.25.10.10 255.255.255.255 = 172.25.10.10/32 int Loopback0 ip address MyIP=HASH(0x84eeef4)