Hallo,
Wahrscheinlich ist irgendeine Bedingung falsch formuliert. Der Debugger konnte mir bisher nicht helfen. Strict und Warnings sind schon seit anno dazumal in Gebrauch. Ich hab mal die äußeren Schleifen auskommentiert (bzw. im Posting weggelassen), damit wenigstens die innere funzt. Tut aber nicht. Wie auch immer mein Programm abläuft, es kommt niemals in die Schleife foreach ( $AW->auswahlliste() )! Die muss aber ausgeführt werden!
THEMA: foreach our $AW ( @unbeantwortet ) {
next THEMA unless ( &entscheidungsfrage(
qq/Sind Sie einverstanden, mit mir jetzt "$AW->{'thema'}" zu
diskutieren? /
));
*fragestellung = $AW->fragen();
foreach ( $AW->auswahlliste() ){
my
$religion = $_->[0];
*option = $_->[1]; #wurde woanders deklariert
FRAGESTELLUNG:
print wrap( $fragestellung ,'','');
print wrap( $$option ,'','');
print <<'ENDE';
Sie k"nnen diese Antwort ausschlieáen oder vorerst akzeptieren (um
eine andere Option zu bekommen). Wie entscheiden Sie sich?
ENDE
OPTION:
my $eingabe = <STDIN>;
unless ( $eingabe =~ m<schlie|akzept|them|wieder|ableh>i ){
if ( $eingabe =~ m<?|frage>i ){
goto FRAGESTELLUNG;
} else {
print <<'FERTIG';
Ungülige Eingabe! Ihre Antwort soll das Schlüsselwort
"ausschlieáen", "akzeptieren", "Thema" enthalten.
FERTIG
goto OPTION;
}
} elsif ( $eingabe !~ m<akzept|them>i ){
$AW->ausschliesen($religion);
print 'Sie haben diese Antwortm"glichkeit ausgeschlossen.';
} elsif ( $eingabe !~ m<schlie|ableh|them>i ){
print q/ Diese Option bleibt weiterhin diskutabel und/ ."\n".
q/ wird bei n"chster Gelegenheit wieder geboten./;
} elsif ( $eingabe !~ m<akzept|schlie|ableh>i ){
print 'OK, Themawechsel.';
next THEMA;
} else {
print q/ Ihre Antwort ist in sich widersprüchlich./.
"\n". q/ Entscheiden Sie sich eindeutig! /;
goto OPTION;
}
} continue {# bezüglich innerer Schleife
# also die mit Religion und optionen
print "\n\n Diese Frage wurde bisher $AW->{'bisher'} mal
gestellt.\n";
if ( scalar $AW->unbeantwortet() > 1){
print " Das Thema $AW->{'thema'} wird in der n"chsten Runde
wiederholt.\n"
} else {
$AW->beantworten($religion);
print " Sie ist jetzt beantwortet. Das Thema $AW->{'thema'}
wird abgelegt";
}# Ende der Bedingung
}# Ende des continue-Blockes.
}# Ende der foreach-Schleife
#Wer weiß Rat?