Data::Dimensions::SickTie - Data::Dimensions::SickTie documentation


Data-Dimensions documentation Contained in the Data-Dimensions distribution.

Index


Code Index:

Data::Dimensions::SickTie

Top

This is ugly and shouldn't need to see the light of day. I consider this package evidence enough that perl6 won't be released a minute too soon.


Data-Dimensions documentation Contained in the Data-Dimensions distribution.

package Data::Dimensions::SickTie;
# This module does horrid things with tie to allow ->set = stuff to
# perform type checking

sub TIESCALAR {
    my $class = shift;
    return bless [@_], $class;
}
sub FETCH {
    return $_[0]->[0];
}
sub STORE {
    my ($self, $val) = @_;
    my $obj = $self->[0];
    if (!ref($val) || !UNIVERSAL::isa($val, 'Data::Dimensions')) {
	$obj->natural($val);
    }
    else {
	$obj->_moan("Storing value with incorrect units")
	    unless $obj->same_units($val);
	$obj->base($val->base);
    }
}
1;

__END__