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


in reply to Re: Re: Re: On Scalar Context
in thread On Scalar Context

Most languages don't have return-type overloading with the same arguments, and I consider this a good thing.

Why?

I love Perl, but I don't believe in covering for it's faults -- or saying that the faults are really DWIMerry or features.

Well they are features whether you like it or not. Perl was very deliberately designing to work in the way it does. You can certainly disagree about it being a good idea - but it's no accident.

I'm still not seeing what you see is so bad about this behaviour. What would you prefer? Should we have separate reverse_string and a reverse_list functions? Should I have to do my $username = ( getpwuid( $uid ) )[0] instead of $username = getpwuid( $uid )?

There are certainly alternative solutions to the problem that scalar/list context solves in Perl, but to me they don't seem innately superior to the option that Larry chose.

Personally I've not encountered problems with the scalar return values of functions, and appreciate the concise comprehensible code it allows me to write.