Schrift
[thread]6463[/thread]

Merkwürdiges Erlebnis mit push(): push gegen fetchrow_array() (Seite 2)



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
Froschpopo
 2004-08-05 18:12
#85408 #85408
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
die hab ich nie benutzt, die sind nur vom print übriggeblieben. aber wir haben ja schon festgestellt, dass der Fehler ganz woanders lag.
renee
 2004-08-05 18:23
#85409 #85409
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich denke, dass das eher ein allgemeiner hinweis von pq war. Es ist mir auch schon aufgefallen, dass sehr häufig ein "$var" gemacht wird, wo es entweder nicht nötig ist, oder sogar zu Fehlern führt. War also nicht nur auf Deinen Code bezogen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Crian
 2004-08-06 12:42
#85410 #85410
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Besser ist übrigens

perldoc -q "quoting"

jedenfalls hat bei mir pq's Variante (auch mit geschützten Anführungszeichen) nicht funktioniert.

Und der Abschnitt ist lesenswert. Um den Diskussionen über perldoc-Hinweise aus dem weg zu gehen, zitiere ich ihn einfach mal:

Code: (dl )
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
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2004-08-05 08:38.