package SVG::Graph::Data::Datum; use strict; #use overload # '""' => \&label, # '<=>' => sub { my($x,$y) = ✓ $x <=> $y }, # '+' => sub { my($x,$y) = ✓ $x+$y }, # '-' => sub { my($x,$y) = ✓ $x-$y }, # '*' => sub { my($x,$y) = ✓ $x*$y }, # '/' => sub { my($x,$y) = ✓ $x/$y }, # ; =head2 new Title : new Usage : Function: Example : Returns : Args : =cut sub new { my($class, %args) = @_; my $self = bless {}, $class; $self->init(%args); return $self; } =head2 init Title : init Usage : Function: Example : Returns : Args : =cut sub init { my($self, %args) = @_; foreach my $arg (keys %args) { $self->$arg($args{$arg}); } } =head2 x Title : x Usage : Function: Example : Returns : Args : =cut sub x { my($self,$arg) = @_; $self->{x} = $arg if defined $arg; return $self->{x}; } =head2 y Title : y Usage : Function: Example : Returns : Args : =cut sub y { my($self,$arg) = @_; $self->{y} = $arg if defined $arg; return $self->{y}; } =head2 z Title : z Usage : Function: Example : Returns : Args : =cut sub z { my($self,$arg) = @_; $self->{z} = $arg if defined $arg; return $self->{z}; } =head2 label Title : label Usage : Function: Example : Returns : Args : =cut sub label { my($self,$arg) = @_; $self->{label} = $arg if defined $arg; return $self->{label}; } =head2 check Title : check Usage : Function: Example : Returns : Args : =cut sub check { my($x,$y) = @_; $x = $x->x if ref $x eq __PACKAGE__; $y = $y->x if ref $y eq __PACKAGE__; return($x,$y); } 1;