Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > нужна помощь по Net::Netmask


Автор: kostil 25.8.2008, 13:12
доброго времени суток!

я новичек в perl. есть одна задача, нашел под нее модуль, вот только с модулем с этим никак не получается разобраться
в объектно ориентированном програмировании я не силен:(

модуль Net::Netmask

интересует функция cidrs2inverse

вот мой скрипт

#!/usr/bin/perl -w


use Net::Netmask;
use strict;

my $allnet = '10.0.0.0/8';
my @blocks = ('10.1.4.0/24','10.1.2.128/25','10.1.9.32/27');

print cidrs2inverse($allnet, @blocks);


и вот что при запуске вываливает
Can't use string ("10.1.4.0/24") as a HASH ref while "strict refs" in use at /usr/local/lib/perl5/site_perl/5.8.8/Net/Netmask.pm line 578.

не пойму как ему нужно отдать блок лист :(

Автор: arto 25.8.2008, 13:31
# perl -MNet::Netmask -le '$block = new Net::Netmask (shift) or die $!; print join "\n",$block->cidrs2inverse (map { new Net::Netmask ($_) } @ARGV)' 10.0.0.0/8 10.1.4.0/24 10.1.2.128/25 10.1.9.32/27
10.0.0.0/16
10.1.0.0/23
10.1.2.0/25
10.1.3.0/24
10.1.5.0/24
10.1.6.0/23
10.1.8.0/24
10.1.9.0/27
10.1.9.64/26
10.1.9.128/25
10.1.10.0/23
10.1.12.0/22
10.1.16.0/20
10.1.32.0/19
10.1.64.0/18
10.1.128.0/17
10.2.0.0/15
10.4.0.0/14
10.8.0.0/13
10.16.0.0/12
10.32.0.0/11
10.64.0.0/10
10.128.0.0/9

Автор: kostil 25.8.2008, 13:47
Огромное спасибо!  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)