PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Liste füllen mit Abbruchbedingung



RedNuX
14-06-2003, 19:06
da ich unter Linux in der Console Arbeite und eine Liste mit Werten füllen möchte ist mir aufgefallen das solange ich kein Steuersignal Sende, ich die Liste bis zum Gammel Tod des Universums füllen kann. Da dachte ich mir machs ne Abbruch bedingung, nur bricht er nicht ab =/.



print "Bitte geben Sie ihre Strings ein: \n";
while ( (@a = <STDIN>) ne "ENDE") {
chomp(@a = <STDIN>);
};

ihr seht eine eingabe von strings wird verlangt, diese werden in eine Liste geschreiben. Allerdings soll er dann nachdem das Wort ENDE eingetippt wurden ist damit aufhören und im Programm fortfahren ...

RedNuX
14-06-2003, 20:40
ich habe es aber nun so gelöst:


#!/usr/bin/perl -w
#Aufgabe: Schreiben Sie ein Programm,das eine Liste von Strings in getrennten Zeilen einliest
# und in umgekehrter Reihenfolge wieder ausgibt.
print "Bitte geben Sie ihre Strings ein: \n";
while ( ($a = <STDIN>) ne "ENDE\n") {
push(@meineliste,$a);
#chomp(@a = <STDIN>);
};
$b = reverse(@meineliste);
print "\nDie Liste umgekehrt lautet: $b\n";


habe aber ne neue Frage: wie bekomme ich diese ignore case funktion hin? so das er nicht nur ein "ENDE" sondern "ende" nimmt?

fork
15-06-2003, 08:21
Probier's mal so:
while ( ($a = <STDIN> ) !~ /ende\n/i) {

Gruß
Tobias

Jasper
15-06-2003, 10:35
Original geschrieben von fork
Probier's mal so:
while ( ($a = <STDIN> ) !~ /ende\n/i) {


besser ist:

while ( ($a = <STDIN>) !~ /^ende$/i) {
...
}

-j