v6

NAME

IP::Addr::v6

SYNOPSIS

my $ip = IP::Addr.new( "2001::/120", :abbreviated, :compact );
say $ip;                # 2001::/120

my $ip = IP::Addr.new( "2001::/120", :abbreviated, :!compact );
say $ip;                # 2001:0:0:0:0:0:0:0/120

my $ip = IP::Addr.new( "2001::/120", :!abbreviated, :!compact );
say $ip;                # 2001:0000:0000:0000:0000:0000:0000:0000/120

my $ip = IP::Addr.new( "2001:0000:0000:0000:0000:0000:0000:0000/120" );
say $ip;                # 2001:0000:0000:0000:0000:0000:0000:0000/120

my $ip = IP::Addr.new( "2001::/120" );
say $ip;                # 2001::/120

DESCRIPTION

Class implements IPv6 handler.

When initialized from a string representation of a IPv6 address this handler tries to preserve the original formatting. E.g. it memorizes whether the source string had abbreviated hextets or was in compact form (contained ::). The SYNOPSIS section demonstrates this behavior in the last two examples.

Attributes

$.scope

For a scoped IPv6 address this attribute contains its scope (i.e. ā€“ interface).

Bool $.abbreviated

This attribute defines if hextets in string representation of IPv6 address would be in their full 4-digit form or abbreviated ā€“ i.e. leading zeroes dropped. If it is False then $.compact value is ignored when address is being stringified.

Bool $.compact

If True then address string representation will have longest streak of zero hextets compacted into ::.

Bool $.mapped

This attribute is set by parser to True if source string represents a IPv4 mapped form of IPv6.

Methods

to-hextets

Alias for to-n-tets method.

EXAMPLES

my $ip = IP::Addr.new( "2001::/120", :abbreviated, :!compact );
say $ip;                # 2001:0:0:0:0:0:0:0/120
$ip.abbreviated = False;
say $ip;                # 2001:0000:0000:0000:0000:0000:0000:0000/120
# Won't be in effect due to abbreviation being turned off
$ip.compact = True;
say $ip;                # 2001:0000:0000:0000:0000:0000:0000:0000/120
# Now both abbreviation and compactness will be activated
$ip.abbreviated = True;
say $ip;                # 2001::/120

AUTHOR

Vadim Belman [email protected]

SEE ALSO

IP::Addr, IP::Addr::Handler

IP::Addr v0.0.4

IPv4/IPv6 manipulation

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.