CGI/Perl Guide | Learning Center | Forums | Advertise | Login
Site Search: in

  Main Index MAIN
INDEX
Search Posts SEARCH
POSTS
Who's Online WHO'S
ONLINE
Log in LOG
IN

Home: Perl Programming Help: Frequently Asked Questions:
What's wrong with always quoting "$vars"?

 



Jasmine
Administrator

Jan 19, 2001, 3:01 PM

Post #1 of 1 (1800 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:

Code
    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:

Code
    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:

Code
    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.

Code
    @lines = `command`; 
print "@lines"; # WRONG - extra blanks
print @lines; # right


 
 


Search for (options) Powered by Gossamer Forum v.1.2.0

Web Applications & Managed Hosting Powered by Gossamer Threads
Visit our Mailing List Archives