my $socket_io_handlers = $mech->repl->expr('variable_that_handles_the_callbacks'); $socket_io_handlers->{on_chat} = sub { print "socket.io: Got " . Dumper \@_; }; #### my $create_tee = $mech->repl->declare(<<'JS'); function (next_handler, perl_handler) { next_handler.apply(arguments); perl_handler.apply(arguments); }; JS my $old_handler = $socket_io_handler->{ on_chat }; my $new_handler = $create_tee->( $old_handler, sub { print "socket.io: " . Dumper \@_ }); $socket_io_handler->{ on_chat } = $new_handler;