##
bind(\&debug, "Entering xxx()");
...
bind(\&logit, "Username : $user logged in")
... and so on...
##
##
sub bind {
my $monad = shift;#self
my $callback = shift;
my @args = @_;
my @res = $callback->(@args);
$monad->pack_args(@res);
return $monad
}
my $monad = new Monad;
$monad->bind(\&debug, "Entering xxx()");
...
$monad->bind(\&logit, "Username : $user logged in")
... and so on...