![]() |
|< 1 2 >| | ![]() |
13 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
...>perldoc -q "quoting"
Found in C:\Perl\lib\pod\perlfaq4.pod
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 strings. Think of it this way:
double-quote expansion is used to produce new strings. If you
already have a string, why do you need more?
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
![]() |
|< 1 2 >| | ![]() |
13 Einträge, 2 Seiten |