Alvis-Convert
view release on metacpan or search on metacpan
lib/Alvis/Document/Links.pm view on Meta::CPAN
package Alvis::Document::Links;
########################################################################
#
# Storage class for link information
#
# -- Kimmo Valtonen
#
########################################################################
use strict;
use warnings;
use Carp;
use Data::Dumper;
use strict;
#########################################################################
my ($ERR_OK,
$ERR_NO_URL,
$ERR_NO_TYPE
)=(0..2);
my %ErrMsgs=($ERR_OK=>"",
$ERR_NO_URL=>"It would be nice if a URL actually pointed " .
"at something.",
$ERR_NO_TYPE=>"No type given."
);
sub new
{
my $proto=shift;
my $class=ref($proto)||$proto;
my $parent=ref($proto)&&$proto;
my $self={};
bless($self,$class);
$self->_set_err_state($ERR_OK);
$self->_init(@_);
return $self;
}
sub _init
{
my $self=shift;
if (defined(@_))
{
my %args=@_;
@$self{ keys %args }=values(%args);
}
}
sub _set_err_state
{
my $self=shift;
my $errcode=shift;
my $errmsg=shift;
if (!defined($errcode))
{
confess("set_err_state() called with an undefined argument.");
}
if (exists($ErrMsgs{$errcode}))
{
if ($errcode==$ERR_OK)
{
$self->{errstr}="";
}
else
{
$self->{errstr}.=" " . $ErrMsgs{$errcode};
if (defined($errmsg))
{
$self->{errstr}.=" " . $errmsg;
}
}
}
else
{
confess("Internal error: set_err_state() called with an " .
"unrecognized argument ($errcode).")
}
}
sub errmsg
{
my $self=shift;
return $self->{errstr};
}
( run in 0.495 second using v1.01-cache-2.11-cpan-39bf76dae61 )