http://www.perlmonks.org?node_id=239712


in reply to •Re: Re^2: On goto
in thread On goto

No, I was not golfing. You're right that it could do with just a hint more punctuation - grep BLOCK would be better than grep EXPR here.

I disagree that it's hard to understand - only if you've never seen that grep idiom before. Personally I use it all the time, so I don't even have to think about it when I read one anymore.

I do think it reads naturally:

Ask   for   a database type   (default is mysql).
Say "Sorry",   then try again
      if you can't   find   an entry   like   the requested database   in the list of databases.

I like to choose my code structure so that it maps as closely to a natural language description of what it's trying to do as possible.

In contrast, I'd never use your no-block example because it violates that principle.

Makeshifts last the longest.