Alright, thanks. I guess my only question left, then, is why would you use something like handles => 'MyURIRole' over handles => qr/.*/? The latter seems a lot more useful and it does allow me to extend the URI class with my own methods very easily and which seems enormously useful. However, I found it very odd that after doing a lot of searching on this, there is only one tutorial I could find that even mentions the handles => qr/.*/ method for delegating. The omission from the documentation of this method for delegating makes me wonder if it's advisable to do (and hence why I looked into using a more "official" way by using a role name instead).
Overall, it just seems the documentation on delegation is lacking a bit, especially for someone like me who doesn't have a lot of experience with OO patterns and is more or less just following recipes without understanding the chemistry behind the cooking. Maybe I should reach out to the module authors? What do you think?