Perl unendlich
Markus Banach
- perl
0 Timo Ballin0 Rama0 Andrea
Liebes Forumspublikum,
Meine Funktion filtering1 in Perl fuehrt zu einer Endlosschleife.
Waehrend Sie meine Frage lesen schreibt das Programm immer noch "Sorry I'm unable to do that" in den <STDOUT> .
Dabei wollte ich nur verhindern, das das Skript bei einer Falscheingabe einfach abbricht.
Kann mir jemand von Ihnen auf die Spruenge helfen.
Vielen Dank im vorraus !
Markus Banach
sub filtering1 {
print "Do you want to keep .gif, .jpg accesses\nin your log entries ? " ;
$answer1 = <STDIN> ;
my $myra = "false" ;
while ( $myra eq "false" ) {
if ($answer1 =~ /[1]/) { print "I'll remove them for you";
$myra = "true" ;}
elsif ($answer1 =~ /[2]/) { print "I'll keep them for you";
$myra = "true" ; }
else { print "Sorry I'm unable to do that"; }
} # end of while
} # end of sub
Liebes Forumspublikum,
Meine Funktion filtering1 in Perl fuehrt zu einer Endlosschleife.
Waehrend Sie meine Frage lesen schreibt das Programm immer noch "Sorry I'm unable to do that" in den <STDOUT> .Dabei wollte ich nur verhindern, das das Skript bei einer Falscheingabe einfach abbricht.
Kann mir jemand von Ihnen auf die Spruenge helfen.
Vielen Dank im vorraus !
Markus Banach
sub filtering1 {
print "Do you want to keep .gif, .jpg accesses\nin your log entries ? " ;
$answer1 = <STDIN> ;
my $myra = "false" ;while ( $myra eq "false" ) {
if ($answer1 =~ /[1]/) { print "I'll remove them for you";
$myra = "true" ;}
elsif ($answer1 =~ /[2]/) { print "I'll keep them for you";
$myra = "true" ; }
else { print "Sorry I'm unable to do that"; }
} # end of while
} # end of sub
ich weiss zwar nicht wieso du die while schleife brauchst ... eber im letzte else zweig solltest du $myra auf irgendetwas setzen was ungleich "false" ist !
Liebes Forumspublikum,
Meine Funktion filtering1 in Perl fuehrt zu einer Endlosschleife.
Waehrend Sie meine Frage lesen schreibt das Programm immer noch "Sorry I'm unable to do that" in den <STDOUT> .Dabei wollte ich nur verhindern, das das Skript bei einer Falscheingabe einfach abbricht.
Kann mir jemand von Ihnen auf die Spruenge helfen.
Vielen Dank im vorraus !
Markus Banach
prbiers mit :
sub filtering1 {
my $myra = "false" ;
while ( $myra eq "false" ) {
print "Do you want to keep .gif, .jpg accesses\nin your log entries ? " ;
$answer1 = <STDIN> ;
if ($answer1 =~ /[1]/) { print "I'll remove them for you";
$myra = "true" ;}
elsif ($answer1 =~ /[2]/) { print "I'll keep them for you";
$myra = "true" ; }
else { print "Sorry I'm unable to do that"; }
} # end of while
} # end of sub
Ramarag ;-)
Hi Markus,
Meine Funktion filtering1 in Perl fuehrt zu einer Endlosschleife.
Waehrend Sie meine Frage lesen schreibt das Programm immer noch "Sorry I'm unable to do that" in den <STDOUT> .sub filtering1 {
print "Do you want to keep .gif, .jpg accesses\nin your log entries ? " ;
$answer1 = <STDIN> ;
my $myra = "false" ;while ( $myra eq "false" ) {
if ($answer1 =~ /[1]/) { print "I'll remove them for you";
$myra = "true" ;}
elsif ($answer1 =~ /[2]/) { print "I'll keep them for you";
$myra = "true" ; }
else { print "Sorry I'm unable to do that"; }
} # end of while
} # end of sub
Du solltest die Abfrage mit in die Schleife nehmen, sonst hat Dein Script niemals die Chance $myra auf etwas anderes als "false" zu setzen.
sub filtering1 {
my $myra = "false" ;
while ( $myra eq "false" ) {
print "Do you want to keep .gif, .jpg accesses\nin your log entries ? " ;
$answer1 = <STDIN> ;
if ($answer1 =~ /[3]/) { print "I'll remove them for you";
$myra = "true" ;}
elsif ($answer1 =~ /[4]/) { print "I'll keep them for you";
$myra = "true" ; }
else { print "Sorry I'm unable to do that"; }
} # end of while
} # end of sub
Gruss,
Angel