Perl ile bir web sayfasının html kodlarını alalım
İlk olarak Programımıza LWP::Simple modülünü use direktifi ile ekliyoruz.
Sonrasında ise LWP:Simple modülünün get(); fonksiyonu ile belirttiğimiz url'nin html kodlarını $icerik ismindeki değişkenimize depolayıp ve print komutu ile yazdırıyouz. LWP::Simple modülü libwww-perl içerinde bulunmaktadır ve kullanmanız için libwww-perl paketlerinin sisteminizde kurulu olması gerekmektedir.
#!/usr/bin/perl -w
use strict;
use LWP::Simple;
my $icerik = get("http://www.yahoo.com");
if($icerik) {
print "$icerik\n";
}else {
die "Hata...";
}
Perl dilinde Unless
Unless eğer verilen şart false ise işlem yapar. Kısaca parantez içersindeki şart false dönüyorsa unless bloğundaki kod işlenir. Aşağıda yazdığım kodlara bakacak olursak.
#!/usr/bin/perl
print "Giris: ";
chomp($str = <STDIN>);
unless($str eq "webcodez")
{
print "webcodez girmelisin\n";
}else {
print "Merhaba.\n";
}
Burada eğer klavyeden webcodez girersek program Merhaba yazacak. webcodez dışında klavyeden ne girilirse "webcodez girmelisin" yazacaktır. Çünkü ifade false dönmektedir.Program iki kere çalıştıktan sonra elde ettiğim çıktı.
Perl STDIN ve Chomp
<STDIN>Operatörünü Perl programımıza girdi yapmak için kullanırız.
$girilen = <STDIN>; Satırı ile Klavyeden girdiğimiz bilgi $girilen değişkenine atanmaktadır.
Ancak veriyi girip Enter tuşuna bastıktan sonra Perl $girilen değişkeninin içindeki veriye "\n" (newline) değerini ekler. Bundan kurtulmak için ise imdadımıza chomp() fonksiyonu yetişir. chomp() fonksiyonu $girilen değişkenindeki "\n" karakterini atar. chomp() fonksiyonu sadece değişkendeki en son "\n" karakterini atar. Yani değişken içinde iki adet "\n\n" karakteri varsa bunlardan sadece string sonundaki atılacaktır. Eğer değişkenin içinde "\n" karakteri olmazsa chomp() fonksiyonu değişkenin içerdiği bilgiye zarar vermez. Aşağıda girilen sayıyı kontrol eden basit bir program bulunmakta.
#!/usr/bin/perl
print "Bir numara girin: ";
chomp($girilen = <STDIN>);
if($girilen > 10) {
print "Ondan buyuk bir deger girdiniz\n";
}elsif($girilen < 10) {
print "Ondan ufak bir deger girdiniz\n";
}
Programın çıktısı ise böyle olacak.