package MyImplCalc;
use strict;
use warnings;
use Error;
use base qw(Calculator);
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $self = {};
bless($self, $class);
return $self;
}
sub Add {
my $self = shift;
my ($var1, $var2) = @_;
my $res = $var1 + $var2;
print __PACKAGE__,"::Add $var1 + $var2 -> $res\n";
return $res;
}
sub Sub {
my $self = shift;
my ($var1, $var2) = @_;
my $res = $var1 - $var2;
print __PACKAGE__,"::Sub\n";
return $res;
}
sub Mul {
my $self = shift;
my ($var1, $var2) = @_;
my $res = $var1 * $var2;
print __PACKAGE__,"::Mul\n";
return $res;
}
sub Div {
my $self = shift;
my ($var1, $var2) = @_;
print __PACKAGE__,"::Div\n";
if ($var2 == 0) {
throw Calculator::DivisionByZero(
_repos_id => "IDL:Calculator/DivisionByZero:1.0",
);
} else {
my $res = $var1 / $var2;
return $res;
}
}
1;