use Math::BigRat; $m = "new"; $a = Math::BigRat->$m(5); $b = Math::BigRat->$m(8); for $m (qw(badd bsub bmul bdiv)) { $x = $a->copy->$m($b); print "$a $m $b = $x\n" }
####
use Math::BigRat; $m = "new"; $a = Math::BigRat->$m(5); $b = Math::BigRat->$m(8); for $m (qw(add sub mul div)) { $x = $a->copy->${\("b".$m)}($b); print "$a $m $b = $x\n" }
##
##
package ParentClass;
# [...]
sub init_server {
my $self = shift;
# [...]
$self->{'server'}->setcallback(
data => sub { $self->gotdata(@_); },
connect => sub { $self->connected(@_); },
disconnect => sub { $self->disconnected(@_),
) || die "Error setting callbacks: $@\n";
# [...]
}
# [...]
##
##
sub UNIVERSAL::method {
my($self, $name, @rest) = @_;
sub { $self->$name(@rest, @_); };
}
package ParentClass;
# [...]
sub init_server {
my $self = shift;
# [...]
$self->{'server'}->setcallback(
data => $self->method("gotdata"),
connect => $self->method("connected"),
# [...]