Thread Frage zu unshift und push (4 answers)
Opened by Josef_Muc at 2016-04-22 11:06

Linuxer
 2016-04-22 11:24
#184553 #184553
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
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 CPAN: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!

View full thread Frage zu unshift und push