[Kc] Since everyone is on a roll today .. is this the most efficient ...
Frank Wiles
frank at wiles.org
Wed Sep 19 15:14:15 PDT 2007
On Wed, 19 Sep 2007 17:06:10 -0500
"Daryl Fallin" <darylvf at gmail.com> wrote:
> I haven't posted for awhile and still consider myself a total PERL
> newbie, so I use the following perl to convert decimal IP notation to
> Quad IP notation. Is there a better way?
>
> Also as you can see my use of $_[0] which works, but seems odd. Now
> I can't remember why I did it that way.
>
> ###########################
> # subroutine: getip( $int )
> ###########################
> sub getip
> {
> my $ipinteger = $_[0];
> #print "TEST: $_[0]\n";
> my $ipbin = ip_inttobin($ipinteger, 4);
> my $ipquad = ip_bintoip($ipbin, 4);
> my $TypeIP = new Net::IP ($ipquad) or die (Net::IP::Error());
> #print "**IP IS: $ipquad\n";
> return $ipquad;
> }
>
I'd check CPAN as I'm sure something like NetAddr::IP::Util
might have something already written to do this.
But, the two comments I would make about the code are:
1) Don't use the indirect object syntax, it can cause subtle
problems in the long run. So instead do:
my $TypeIP = Net::IP->new($ipquad) or die (Net::IP::Error());
2) Why are you even creating the Net::IP object? You don't appear to
do anything with it at all so it is pointless.
-------------------------------------------------------
Frank Wiles, Revolution Systems, LLC.
Personal : frank at wiles.org http://www.wiles.org
Work : frank at revsys.com http://www.revsys.com
More information about the kc
mailing list