Thread my richtig setzen (18 answers)
Opened by Byonik at 2010-06-24 10:28

pq
 2010-06-24 10:44
#138895 #138895
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
mit my() deklarierst du eine variable.
zweimal deklarieren braucht man nicht.
du schreibst:
Code (perl): (dl )
1
2
3
4
5
6
my $protein ='';
...
{
    ...
    my $protein .= codon2aa($codon);
}


das, was da passiert, ist gleichzeitig einer der vorteile lexikalischer variablen. man kann in einer sub variablennamen verwenden, die auch ausserhalb verwendet werden, wenn die beiden unabhängig voneinander sind. die äussere wird dann nicth überschrieben.

aber du willst ja die äussere variable setzen. was du stattdessen machst, ist, perl zu sagen "in dem block will ich eine neue variable $protein deklarieren, die mit der äusseren nix zu tun hat".

also, deklariere variablen mit my. wenn du dann werte verändern willst, brauchst du die variable nicht noch einmal neu zu deklarieren. lass also das my() vor $protein in der schleife weg.

kennst du Wiki:use strict schon?

edit: denn in dem wiki-artikel steht:
"Jeden Variable sollte (einmal) deklariert werden, bevor sie verwendet wird"
man beachte das "einmal".
Last edited: 2010-06-24 10:45:49 +0200 (CEST)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread my richtig setzen