Problem IF Anweisung
Stefan
- perl
0 Eternius0 Margin-Auto
Hallo zusammen,
ich habe folgendes Mini-Skript:
#!/usr/bin/perl -w
use warnings;
use CGI::Carp qw(fatalsToBrowser);
my $myc = "1-2-3-4-5-6-7-8-9";
if ($myc) {my @number = split(/-/, $myc);}
1;
Die Variable $myc hat doch einen Wert durch die Zuweisung.
Warum wird aber nicht der Befehl my @number = split(/-/, $myc); ausgeführt?
Weiss jemand Rat?
Hallo,
if ($myc) {my @number = split(/-/, $myc);}
wird doch ausgeführt, allerdings füllst du das array @number welches nur für diesen block gilt:
{my @number = split(/-/, $myc);}
gruss
Hi,
#!/usr/bin/perl -w
use warnings;
use CGI::Carp qw(fatalsToBrowser);my $myc = "1-2-3-4-5-6-7-8-9";
if ($myc) {my @number = split(/-/, $myc);}
Die Variable $myc hat doch einen Wert durch die Zuweisung.
Warum wird aber nicht der Befehl my @number = split(/-/, $myc); ausgeführt?
Wie hast du das festgestellt, dass der Befehl nicht ausgeführt wird? Ich konnte das nämlich mit einem print 'foo'; (oder so) im if nicht nachvollziehen; wird brav ausgeführt.
Ich tippe eher darauf, dass du nicht auf @number zugreifen kannst, da du es innerhalb des ifs mit my deklariert hast. Deklariere es vorher mit
my @number;
und es ist überall im Skript verfügbar.
HTH
Margin-Auto
Hi Margin-Auto,
"Ich tippe eher darauf, dass du nicht auf @number zugreifen kannst, da du es innerhalb des ifs mit my deklariert hast."
Ja, das war mein Problem.
if ($myc) {my @number = split(/-/, $myc);}
Ist denn die Var. @number durch my nur innerhalb der IF Anweisung gültig?
if ($myc) {my @number = split(/-/, $myc);}
Ist denn die Var. @number durch my nur innerhalb der IF Anweisung gültig?
sie ist ausserhalb der geschweiften Klammer also des Blocks nicht mehr gültig.
Struppi.