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.
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
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";
}
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!