
Jasmine
Administrator
Jan 19, 2001, 3:01 PM
Post #1 of 1
(1195 views)
|
|
What's wrong with always quoting "$vars"?
|
Can't Post
|
|
(From the Perl FAQ) What's wrong with always quoting "$vars"? The problem is that those double-quotes force stringification, coercing numbers and references into strings, even when you don't want them to be. If you get used to writing odd things like these: print "$var"; # BAD $new = "$old"; # BAD somefunc("$var"); # BAD You'll be in trouble. Those should (in 99.8% of the cases) be the simpler and more direct: print $var; $new = $old; somefunc($var); Otherwise, besides slowing you down, you're going to break code when the thing in the scalar is actually neither a string nor a number, but a reference: func(\@array); sub func { my $aref = shift; my $oref = "$aref"; # WRONG } You can also get into subtle problems on those few operations in Perl that actually do care about the difference between a string and a number, such as the magical ++ autoincrement operator or the syscall() function. Stringification also destroys arrays. @lines = `command`; print "@lines"; # WRONG - extra blanks print @lines; # right
|