Ohjelmassa on käytetty erilaisia listan käsittelyfunktioita, kuten push (lisää loppuun),unshift (lisää alkuun), grep (etsii tietynlaiset arvot tai mjonot, voidaan käyttää säännöllisiä lausekkeita) ja map (tässä tapauksessa laskee neliön).
$valinta = 0;
@luvut = ();
$a = 0;
$b = 1;
$summa = 0;
print "1) Lisää loppuun\n";
print "2) Lisää alkuun\n";
print "3) Lisää lista loppuun \n";
print "4) Lisää lista alkuun \n";
print "5) Viimeinen luku\n";
print "6) Viimeinen numero pieni\n";
print "7) Viimeinen numero suuri \n";
print "8) Vain pieniä numeroita\n";
print "9) Vain isoja numeroita\n";
print "10) Neliöt\n";
do {
#Suoritetaan valinnan mukainen toiminto.
print "Valitse\n";
chop($valinta = <STDIN>);
print "\n";
if ($valinta == 1){
#Lisätään loppuun
$summa=$a+$b;
$a=$b;
$b=$summa;
push(@luvut,$summa);
foreach (@luvut){
print $_,"\n";
}
}
elsif ($valinta == 2){
#Lisätään alkuun.
$summa=$a+$b;
$a=$b;
$b=$summa;
unshift(@luvut,$summa);
foreach (@luvut){
print $_,"\n";
}
}
elsif ($valinta == 3){
#Lisätään luvut loppuun
@luku = (0,1,2,3,4,5,6,7,8,9,10);
push(@luvut,@luku);
foreach (@luvut){
print $_,"\n";
}
}
elsif ($valinta == 4){
#Lisätään luvut alkuun
@luku = (0,1,2,3,4,5,6,7,8,9,10);
unshift(@luvut,@luku);
foreach (@luvut){
print $_,"\n";
}
}
elsif ($valinta == 5){
#Viimeinen luku
$viimeinen = pop(@luvut);
print "$viimeinen \n";
}
elsif ($valinta == 6){
#Etsitään lukuja, joissa viimeinen numero on pieni.
@pienet = grep $_ % 10 < 5, @luvut;
foreach (@pienet){
print $_,"\n";
}
}
elsif ($valinta == 7){
#Etsitään lukuja, joissa viimeinen numero on suuri.
@suuret = grep $_ % 10 >= 5, @luvut;
foreach (@suuret){
print $_,"\n";
}
}
elsif ($valinta == 8){
#Etsitään lukuja, jotka sisältävät vain pieniä lukuja.
@pienet = grep(/^[0-4]*$/,@luvut);
foreach (@pienet){
print $_,"\n";
}
}
elsif ($valinta == 9){
#Etsitään lukuja, jotka sisältävät vain suuria lukuja.
@suuret = grep(/^[5-9]*$/,@luvut);
foreach (@suuret){
print $_,"\n";
}
}
elsif ($valinta ==10){
#Lasketaan neliöt.
@nelio = map{($_)*($_)} @luvut;
foreach (@nelio){
print $_,"\n";
}
}
} while ($valinta != 0);Aihe on jo aika vanha, joten et voi enää vastata siihen.