问个问题,vec函数是如何将1 ~ 32 转换成掩码的,比如24对应255.255.255.0.
foreach (1..32){
    printf "$_ => %s\n", &cidr2mask($_);
}
exit 1;
sub cidr2mask{
    my $length = shift;
    my $mask = '';
    vec( $mask, 0, 32 ) = 0x0;         # 这里开始我就不是太懂了,vec函数的原理是什么?
    foreach (1..$length){
        vec( $mask, (32-$_), 1 ) = 0x01;   #这里呢?
    }
    $mask = join( '.', reverse( split( /\./, sprintf( "%vd", $mask ) ) ) );
    return $mask;
}

2011-05-23 



perl01 

-- 
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 [email protected]。
要取消订阅此网上论坛,请发送电子邮件至 [email protected]。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

回复