Named subroutines belong to a namespace. When you create a subroutine with eval, it is added to a namespace for the life of the program, unless something else removes it. Perl's OO system revolves around telling it which namespace it should find its methods in. It does not attach methods to individual objects.
You should change your code so that it only creates these subs the first time. Otherwise you are slowing down your code. A common approach is to put this kind of setup work in a BEGIN block.