develooper Front page | perl.perl5.porters | Postings from July 2009

Re: [PATCH] Remove implicit split to @_

Thread Previous | Thread Next
From:
Ben Morrow
Date:
July 10, 2009 08:24
Subject:
Re: [PATCH] Remove implicit split to @_
Message ID:
20090710152354.GA15207@osiris.mauzo.dyndns.org
Quoth Peter@PSDT.com (Peter Scott):
> On Thu, 09 Jul 2009 21:28:14 -0700, Chip Salzenberg wrote:
> 
> > This is an amusing discussion.
> > 
> > The only problem that I observe with scalar split writing to @_
> > implicitly is that it's an easy thing to do by accident and is almost
> > never useful. Therefore, removing it seems a public service.
> > 
> > I favor simply making it a compile-time error to use split in scalar
> > context.  No problem with silently changing semantics and no more
> > surprising behavior.  Everybody's happy.  (right?)
> 
> I don't get it.  The docs say that scalar split returns the number of 
> elements.  That's useful and convenient, and more intuitive than some of 
> the alternative gyrations that have been suggested.  No one cares about it 
> shoving the contents in @_ or wants that to continue, especially since it 
> results in a warning.  So why can't we make it return the number of 
> elements without either populating @_ or generating a warning?  

One good reason might be: someone who writes something on 5.12, and
doesn't know the history of scalar split, will get a nasty surprise when
they run that code on <=5.10.

Since it took me a minute or two to remember why $count () = split
doesn't work, I'd be in favour of fixing that as well. The only occasion
where someone might be assigning a split to a (literal) empty list is as
part of this idiom.

Ben


Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About