Thread Frage zu unshift und push
(4 answers)
Opened by Josef_Muc at 2016-04-22 11:06
Beide Eingaben, Vorname und Nachname, enthalten NACH dem eingegebenen String einen Umbruch.
Also wird es einmal zu ( "Vorname\n", "Muster" ), und einmal zu ( "Muster", "Nachname\n" ); edit2: Da Du die Ausgabe "nur" mit print machst, wird im zweiten Fall "Muster" ausgeben (ohne Umbruch) und dann eben "Nachname\n". Funktioniert also wie programmiert. Der Umbruch ist auch beim Nachnamen da, fällt da aber weniger auf... Weder push() noch unshift() fügen Umbrüche hinzu oder entfernen sie. Edit: Ich würde eher bei jeder Eingabe den Umbruch entfernen lassen und bei der Ausgabe selber ausgeben lassen. Und am ehesten würde ich auf Term::ReadLine zurückgreifen und damit die Eingaben abfragen. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #! /usr/bin/perl use strict; use warnings; use 5.010; print "Bitte waehlen Sie zwischen 1 oder 2: "; chomp(my $auswahl = <STDIN>); my @name = qw(Muster); if($auswahl == 1){ print "Bitte Vorname eingeben: "; chomp( my $vorname = <STDIN> ); unshift(@name, $vorname); } elsif($auswahl == 2) { print "Bitte Nachname eingeben: "; chomp(my $nachname = <STDIN>); push(@name, $nachname); } else{ say "Bitte nur 1 oder 2 eingeben"; } # jedes Element ausgeben; say = print mit Umbruch am Ende for(my $i = 0; $i <= $#name; $i++){ say $name[$i]; } __END__ Last edited: 2016-04-22 11:33:15 +0200 (CEST) meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |