|
![ein Kapitel weiter](../weiter.gif)
Nun kommen wir zu Arrays und Zeichenketten oder besser Arrays von
Zeichenketten. Was versteht ein C-Programmierer darunter?
char *texte[] = {"Hallo", "Wie gehts", "Guten Tag", "Guten Abend"};
Also ein Zeiger auf Arrays. Nun hier geht's aber um Perl. Also wie sieht's nun in
Perl aus................
@texte = ("Hallo", "Wie gehts", "Guten Tag", "Guten Abend");
Die Ähnlichkeit lässt sich auch hier nicht leugnen. Man merkt Perl schon an des es in C
Programmiert wurde. Nun wollen wir zu den Unterschieden von Arrays mit Zeichenketten und Array mit Zahlen kommen. Auch hier gilt für die Anzahl der Elemente in der Liste.....
#!/usr/bin/perl -w
@texte = ("Hallo", "Wie gehts", "Guten Tag", "Guten Abend");
$anzahl=@texte;
printf $anzahl . "\n";
print $#texte+1 . "\n";
Der Zugriff auf die einzelnen Zeichenkette erfolgt auch hier mit Hilfe des Indexes, einer for oder foreach-Schleife. Das mit der direkten Angabe des Arrays funktioniert bei Array von Zeichenketten nicht mehr...........
#!/usr/bin/perl -w
@texte = ("Hallo", "Wie gehts", "Guten Tag", "Guten Abend");
$counter=0;
foreach (@texte)
{
print $_ . "\t"; #1.Variante
print $texte[$counter] . "\n"; #2.Variante
$_=$counter++; #Indexzaehler erhöhen
}
print "@texte" , "\n";
Natürlich funktionieren auch die Funktionen pop, push, unshift, shift und
slice. Hierzu auch noch eine Demonstration........
#!/usr/bin/perl -w
@texte = ("Hallo", "Wie gehts", "Guten Tag", "Guten Abend");
@neue_texte = ("neuer Text", "nixsagender Text");
$counter=0;
$eingabe=0;
push(@texte, $neue_texte[0]); #hängen "neuer Text" hinten an @texte an
shift @texte; #Wir entfernen das erste Element in @texte
unshift (@texte, $neue_texte[1]); #an den Anfang von Texte
print "Bitte geben sie irgendetwas ein : ";
chomp ($eingabe=<STDIN
splice (@texte, 2, 1, $eingabe);
#Wir entfernen "Guten Tag" und fügen dafür unsere neue Eingabe ein
foreach (@texte)
{
print $_ , "\t";
$_=$counter++;
}
print "\n";
![ein Kapitel weiter](../weiter.gif)
© 2001,2002 Jürgen Wolf
|