Matematik ile aranız nasıl bilmiyorum ama gerçek CGI programları yazmaya başladığınızda programlarınızın içinde mutlaka matematiksel işlemler yapmak zorunda kalacaksınız. Bu işlemler çok karmaşık işlemler olabileceği gibi değişkenleri toplama, çıkarma, döngü sırasında bir değer arttırma şeklinde de olabilir. Bu derste perl ile yapabileceğimiz matematiksel işlemleri ele alacağız.


Perl ile dört işlem :


Perl ile sayıları ya da sayı içerikli değişkenleri toplayabilir, çıkarabilir, bölebilir ya da çarpabiliriz. Örneğin elimizde şu değişkenler var :


$a = 1;
$b = 2;
$c = 3;
$d = 4;


Önce $a ile $b'yi toplayalım :


$sonuc = $a + $b;


print $sonuc;


Bu kod ekrana $sonuc değişkenin değerini yani "3" yazdıracaktır. $b değişkeninden $a değişkenini çıkarmak için ise şöyle bir kod yazmamız gerekir :


$sonuc = $b - $a;


print $sonuc;


Bu kod da ekrana "1" yazdıracaktır. Çarpma işlemi ise şu şekilde :


$sonuc = $b * $d;


print $sonuc;


Bu kod da $b değişkeni ile $d değişkenlerinin değerlerini çarpıp sonucu $sonuc değişkenine atar ve ekrana "8" yazdırır. Bölme işlemi ise şu şekilde :


$sonuc = $d / $b;


print $sonuc;


Bu kod da $d değişkeninin değerini $b değişkeninin değerine böler (4 / 2), sonucu $sonuc değişkenine atar ve ekrana yazdırır. Eğer birden fazla işlem yapmak istiyorsak, mesela önce $a, $b, ve $c değişkenlerini toplayıp sonuçtan $d değişkenini çıkarmak istiyorsak şu şekilde bir kod kullanmamız gerekir :


$sonuc = ($a + $b + $c) - $d;


print $sonuc;


Bu kodla program önce $a, $b ve $c değişkenlerinin değerlerini toplar, sonra çıkan sonuçtan $d değişkeninin değerini çıkarır ve sonucu (6-4 = 2) ekrana yazar.


Dört işlem için bu kadar örnek fazla bile. Şimdi öğrendiğimiz bilgilerden daha "işe yarar" bir örnek yapalım. Örneğimiz formdan gelen iki sayı üzerinde işlem yapsın. Bu işlem yine ziyaretcinin (yani bizim) seçtiğimiz işlem olsun. Yani kısaca dört işlem yapabilen basit bir hesap makinası yapalım :




#!/usr/bin/perl# hesapla.cgiuse CGI qw(:standard);print "Content-type:text/html\n\n";$query = new CGI;$sayi1 = $query -> param('sayi1');$sayi2 = $query -> param('sayi2');$islem = $query -> param('islem');print "<html><body>";if ($islem ne "") {if ($islem eq "topla") {$sonuc = $sayi1 + $sayi2;print "İşlem sonucu : $sonuc";}elsif ($islem eq "cikar") {$sonuc = $sayi1 - $sayi2;print "İşlem Sonucu : $sonuc";}elsif ($islem eq "bol") {$sonuc = $sayi1 / $sayi2;print "İşlem Sonucu : $sonuc";}elsif ($islem eq "carp") {$sonuc = $sayi1 * $sayi2;print "İşlem Sonucu : $sonuc";}}print "<form action=hesapla.cgi method=post>";print "<input type=text name=sayi1> sayısı ile ";print "<input type=text name=sayi2> sayısını ";print "<select name=islem>";print "<option value=topla>Topla<br>";print "<option value=cikar>Çıkar<br>";print "<option value=bol>Böl<br>";print "<option value=carp>Çarp<br>";print "</select>";print "<input type=submit value=YAP!>";print "</form>";print "</body></html>";


Perl ile ileri matematik işlemleri de yapabilirsiniz. Mesela :


$sayi = 12;


$karekok = sqrt($sayi);


print $karekok;


Bu kod sqrt() fonksiyonu ile $sayi değişkeninin değerini $karekok değişkeninin değerine atar ve ekrana 12'nin karekökünü yazdırır.


$sayi = 12;


$log = log($sayi);


print $log;


Bu kod log() fonksiyonunu kullanarak $sayi değişkeninin logaritmasını alır, $log değişkenine atar ve ekrana yazdırır. Aynı şekilde exp() fonksiyonu ile sayının exponensiyelini, int() fonksiyonu ile sayının integerini, abs() fonksiyonu ile sayının mutlak değerini bulabilirsiniz.


Bir önceki yazı Dosya işlemleri hakkında bilgi vermektedir.