On Mon, Sep 29, 2008 at 11:03 AM, Galen Charlton
<galen.charlton@liblime.com> wrote:
Hi,
On Mon, Sep 29, 2008 at 9:42 AM, Marc Chantreux
> do you think that:
>
> for my $var ( list_generator ) {
> $var =~ /useless/;
> $var =~ s/old/new/;
> next unless -d $var;
> mkdir $_;
> }
>
> is more readable than:
>
> for ( list_generator ) {
> /useless/;
> s/old/new/;
> next unless -d;
> mkdir $_;
> }
I do. :)
I don't. I actually prefer the latter. And if you construct the example more conventionally, it should be obvious what the topic is without any explanatory comment.
foreach (@directories) {
...
}
> I think that be confortable with $_ (without abusing it) is a part of
> the perl programmer skills set. If you don't, you'll never use such
> usefull fonctions like grep and map.
I agree that a Perl programmer ought to know how to use $_. However,
IMO the project needs to accept contributions from both expert and
novice Perl programmers, and too much use of "punctuation" variables
outside of the while (<FILE>) idiom reduces clarity.
I don't consider $_ at all an "advanced" construction. It's proper use should be common, certainly more common than other punctuation vars. On that note though, I don't see anything wrong with $! or $. either. I'd much prefer $. to $NR! Feel free to use $INPUT_LINE_NUMBER if you want, but that level of $VERBOSITY seems a bit too remedial for common usage.
Case in point though, here I agree it is better to add a variable rather than assign to $_. But more broadly, coding to avoid $_ altogether is working against the language unnecessarily and, imho, unproductively.
-Joe