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.