in reply to Re: Re^3: RFC: Transactions.pm
in thread RFC: Transactions.pm

You're using it to sail across scopes in this case. That's a true goto, even if you don't like calling the child by its name. There's a reason for the warning you had to shut up and that it doesn't happen with goto. And anyway, sometimes, there is good reason to use the.. "G word". Just like sometimes, there's reason to use symbolic references. Or to use global variables. None of them are bad practices in and of themselves; there are just very few situations that warrant their use. As they say about goto:
The apprentice uses it without thinking.
The journeyman avoids it without thinking.
The master uses it thoughtfully.
Of course, in this case, die presented a still cleaner option.

Makeshifts last the longest.

  • Comment on Re^5: RFC: Transactions.pm (call a goto "goto")