
package COBOL;
use Carp 'croak';

sub AUTOLOAD {
  my ($package, $method) = $AUTOLOAD =~ /(.*)::(.*)/;
  my $arith = $method;

  croak "Malformed method name '$method' in package '$package'"
    unless $arith =~ s/^ADD//;

  my @nums = split /AND/, $arith, -1;
  croak "Malformed method name '$method' in package '$package'"
    unless @nums >= 2;
  
  my $total = 0;
  for (@nums) {
    croak "Malformed method name '$method' in package '$package'"
      unless /^\d+$/;
    $total += $_;
  }
  return $total;
}

1;
