What happens if the
eval that you use for the import fails for any reason? Check $@ and see if it actually imports correctly.
If that doesn't fix it, then before your goto I would test a can to be sure that it should be found, and start debugging what package it went into, etc.
But I will bet that it is an error hidden behind eval's error trapping.
UPDATE: The reason why this is an infinite loop is that you call a method which is not there, falls into an AUTOLOAD, which calls the same method, it still is not there, falls into the same AUTOLOAD, etc.