Die Webseiten der Fachschaft Informatik am ERG Saalfeld


suche

Es soll in einer Liste von Elementen bestimmte Elemente gesucht werden. Es sollen alle Elemente zurückgegeben werden, auf die bestimmte Eigenschaften zutreffen. Die Stelle in der Liste, wo die Elemente gefunden werden, wird nicht erfasst. Es wird der Perlbefehl grep verwendet.
 

Die Syntax für den Aufruf von grep ist:

 @out = grep { CODE } @in;

Dabei ist @in die Liste, die durchsucht wird, CODE kann eine (oder mehrere) Perlanweisungen sein oder auch ein regulärer Ausdruck. Wenn die Anweisung(en) oder der reguläre Ausdruck auf das altuelle Element zutrifft, dann kommt es in die Liste, die zurückgegeben wird (hier @out). Bei den Perlanweisungen kann mit der Spezialvariablen $_ auf das aktuelle Element zugegriffen werden.

Programm

use strict;
use warnings;

my @feld = ();

for (my $i = 0; $i < 120; $i++) {
    $feld[$i] = int(rand(100));
}

for (my $i = 0; $i < 120; $i++) {
    print $feld[$i], ' ';
}
print "\n\n";

my @out = grep { $_ < 10 } @feld;

foreach my $element (@out) {
  print $element, ' ';
}
print "\n\n";

#my $out = grep { $_ < 10 } @feld;
#print $out, "\n\n";

my @out2 = grep { /^.?3$/ } @feld;

foreach my $element (@out2) {
  print $element, ' ';
}
print "\n\n";

__END__

 

Der Aufruf sah bei mir so aus:

 

Aufgaben

  1. Bringen Sie das Programm zum Laufen.
  2. Kommentieren Sie das Programm ausführlich!
  3. Ändern Sie das Programm so ab, dass die Anzahl der Elemente als Parameter übergeben wird.
  4. Ändern Sie das Programm so ab, dass die durch 5 teilbaren Zahlen ausgegeben werden.
  5. Ändern Sie den regulären Ausdruck so ab, dass die zweistelligen Zahlen, die auf 3 enden, ausgegeben werden.
  6. Ändern Sie das Programm so ab, dass alle Stellen des Auftretens dieses Elements ausgegeben werden.
  7. Im bereitgestellten Programm sind 2 auskommentierte Zeilen. Entfernen Sie die Kommentarzeichen und testen Sie. Erläutern Sie!

 

zurück


© ERG Saalfeld   -   Hans-Dietrich Kirmse   20.08.2017