in reply to Question perlcritic ProhibitExplicitReturnUndef

A blank return is not intended to return anything. It is doing what is is supposed to do which is error checking.

The explanation of a blank return vs. return undef is that if it is used as an error checking mechanism, the undef screws things up when used in a list context.

The coding example you used is not in an error checking context, you wanted to return a value. Why you want to return an undef to set a value, I don't know, but you could always return an empty string which would make more sense anyways.

You can approach undef in this way, if I have a scalar value which is undef it means 'noone has attempted to assign a value to this variable.' If you have an empty string, 'someone has assigned a value which is nothing.'

  • Comment on Re: Question perlcritic ProhibitExplicitReturnUndef