NAME
FTN::Addr - Object-oriented module for creation and working with FTN addresses.
VERSION
version 20160303
SYNOPSIS
use FTN::Addr;
my $a = FTN::Addr -> new( '1:23/45' ) or die "this is not a correct address";
my $b = FTN::Addr -> new( '1:23/45@fidonet' ) or die 'cannot create address';
print "Hey! They are the same!\n" if $a eq $b; # they actually are, because default domain is 'fidonet'
$b -> set_domain( 'othernet' );
print "Hey! They are the same!\n" if $a eq $b; # no output as we changed domain
$b = FTN::Addr -> new( '44.22', $a ) or die "cannot create address"; # takes the rest of information from optional $a
$b = $a -> new( '44.22' ) or die "cannot create address"; # the same
print $a -> f4, "\n"; # 1:23/45.0
print $a -> s4, "\n"; # 1:23/45
print $a -> f5, "\n"; # 1:23/45.0@fidonet
print $a -> s5, "\n"; # 1:23/45@fidonet
DESCRIPTION
FTN::Addr module is for creation and working with FTN addresses. Supports domains, different representations and comparison operators.
OBJECT CREATION
new
Can be called as class or object method:
my $t = FTN::Addr -> new( '1:23/45' ) or die 'something wrong!';
$t = $t -> new( '1:22/33.44@fidonet' ) or die 'something wrong!'; # advisable to use class call here instead:
$t = FTN::Addr -> new( '1:22/33.44@fidonet' ) or die 'something wrong!';
Default domain is 'fidonet'. If point isn't specified, it's considered to be 0.
Address can be:
3d/4d 1:23/45 or 1:23/45.0
5d 1:23/45@fidonet or 1:23/45.0@fidonet
fqfa fidonet#1:23/45.0
The Brake! FTN-compatible mailer for OS/2 style fidonet.1.23.45.0
If passed address misses any part except point and domain, the base is needed to get the missing information from (including domain). It can be optional second parameter (already created FTN::Addr object) in case of class method call or object itself in case of object method call.
my $an = FTN::Addr -> new( '99', $t ); # class call. address in $an is 1:22/99.0@fidonet
$an = $t -> new( '99' ); # object call. the same resulting address.
Performs field validation.
In case of error returns undef in scalar context or empty list in list context.
clone
$th = $an -> clone
FIELD ACCESS
Direct access to object fields. Checking is performed (dies on error). Setters return itself (for possible chaining).
domain:
$an -> set_domain( 'mynet' );
$an -> domain;
$an -> domain( 'leftnet' );
zone:
$an -> set_zone( 2 );
$an -> zone;
$an -> zone( 3 );
net:
$an -> set_net( 456 );
$an -> net;
$an -> net( 5020 );
node:
$an -> set_node( 33 );
$an -> node;
$an -> node( 60 );
point:
$an -> set_point( 6 );
$an -> point;
$an -> point( 0 );
REPRESENTATION
f4 - Full 4d address (without domain):
print $an -> f4; # 1:22/99.0
s4 - Short form (if possible) of 4d address:
print $an -> s4; # 1:22/99
f5 - Full 5d address (with domain):
print $an -> f5; # 1:22/99.0@fidonet
s5 - Short form (if possible - only for nodes) of 5d address:
print $an -> s5; # 1:22/99@fidonet
fqfa - Full qualified FTN address:
print $an -> fqfa; # fidonet#1:22/99.0
bs - The Brake! FTN-compatible mailer for OS/2 style representation:
print $an -> bs; # fidonet.1.22.99.0
COMPARISON
equal, eq, cmp
Two addresses can be compared.
my $one = FTN::Addr -> new( '1:23/45.66@fidonet' ) or die "cannot create";
my $two = FTN::Addr -> new( '1:23/45.66@fidonet' ) or die "cannot create";
print "the same address!\n" if FTN::Addr -> equal( $one, $two ); # should print the message
print "the same address!\n" if $one eq $two; # the same result
print "but objects are different\n" if $one != $two; # should print the message
The same way (comparison rules) as 'eq' works 'cmp' operator.
AUTHOR
Valery Kalesnik, <valkoles at gmail.com>
BUGS
Please report any bugs or feature requests to bug-ftn-addr at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=FTN-Addr. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc FTN::Addr