$my_obj->$methodref->(@args)
- это
( $my_obj->$methodref() )->(@args)
Другими словами, он вызовет метод без аргументов и попытается использовать результат в качестве ссылки на функцию.Это совсем не то, что вам нужно
Очевидное средство для его вызова -
$methodref->($my_obj, @args)
, но Perl предоставляет синтаксис, который выглядит как вызов метода для вашего удовольствия.
$my_obj->$methodref(@args)