Perl etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Perl etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

6 Ocak 2008 Pazar

Perl: Regular Expressionlar

Regular Expressionlar Türkçe'si Düzenli İfadeler oluyor herhalde. Neyse burada önemli olan Türkçesi'nin ne olduğu değil perlde kullanımını öğrenmek.
Perl dilinin güçlü yanlarından biri de Regular Expressionlar.
Diğer programlama dillerinde çok sayıda kodla yapabileceğimiz işler perlde bu yöntemi kullanarak tek satırda bile halledilebiliyor.
Anlaşılır olması için örnekler vermeye çalıştım.
Örnekleri uygulamak için sisteminize Perl ve bir perl editör programı indirip kurun. Tavsiyem Perl Builder programı.
Detaylı bilgi için Perlde düzenli ifadeler genelde iki / işareti arasında olur. /def/ ifadesi sedefler kelimesinde aratıldığında sonuç True yani Doğru olacaktır. split fonksiyonu ile düzenli ifadeleri kullanabilir ve bir metni parçalara ayırabiliriz.
$metin = "Perl öğrenmek sanıldığı kadar zor değil";
@parcalar = split(/ /,$metin);
üstteki kodlar $metin değişkenindeki metni boşluklardan ayırırarak @parçalar boyutlu değişkenine aktarır. Dikkat: İki bölü arasında bir boşluk var

~ operatörü

~ operatörüyle metin içinde düzenli ifadeye uygun kelime olup olmadığı araştırılır.
$sonuc = $degisken =~ /abc/;
=~ operatörüyle $sonuç değişkenine kelime varsa, True yada 0 olmayan bir değer ; kelime yoksa, False ya da 0 değeri atanır.
$sonuc = $degisken !~ /abc/;
!~ operatörü metin içinde aranılan olmadığını tespit eder. Yoksa 1, varsa 0 sonucu alırız. Yani ilk kodun tersi.
$istek = "Bir çay istiyorum. Lütfen";
if ($istek =~ /Lütfen/){
print "Nezaketinize teşekkürler";}
else {
print "Nazik değilsiniz.";}

Düzenli İfadelerde Özel karakterler.

+ karakteri

Bir ya da daha fazla karakter olup olmadığını araştırır.

4 Mayıs 2007 Cuma

CHMOD Nedir ?

Perl ve PHP dosyalarınızı sunucuya kurma işiyle uğraşıyorsanız, sunucu UNIX ya da türevi ise CHMOD un ne olduğunu bilmek durumundasınız.

CHMOD bahsettiğimiz gibi UNIX ya da türevi işletim sistemlerinde bir komuttur. NT ya da Windows  kurulu yerel web sunucularda chmod ile alakalı bir işiniz olmayacaktır. Chmod’un işlevi dosyaların özniteliklerini değiştirmektir. DOS komut satırındaki ATTRIB komutu gibi.

DOS ya da WINDOWS’da dosyanın çalışabilir dosya olduğu uzantısından belli olur. BAT, COM, EXE uzantılı dosyalar çalışır dosyalardır. UNIX’de ise durum farklıdır. Dosyanın çalışır olup olmadığı dosya özniteliklerinden belli olur.

Perl cgi scriptlerin de çalışabilir olabilmesi için özniteliklerin değiştirilmesi gerekir. Bu işlemi sistem komut satırına ulaşabiliyorsanız komut satırından yapabileceğiniz gibi FTP programı ile de yapabilirsiniz.

Birçok FTP programının bu özelliği vardır örneğin yaygın olarak kullanılan FTP programları: CuteFTP(share), FileZilla(bedava), CoreFTPLite(bedava), WS_FTP LE(bedava) ... vb.

Ben aşağıdaki görüntüleri FileZilla programından aldım. Diğer programlarda da benzer görüntülerle karşılaşırsınız.

Programı çalıştırıp sunucunuza bağlantı kurduktan(connect) sonra sunucu tarafındaki(sağ bölme) dosya üzerinde sağ tıklayın


Açılan menüden Properties tıklayın.



Burada gördüğünüz her bir seçeneğin bir sayısal değeri var. Rakamları ben yazdım normalde yok. Üst resimdeki seçeneklerin sayı değeri toplamı 644 edecektir.

Dosya özniteliklerini Numeric Value kısmından rakam yazarak değiştirebileceğiniz gibi her bir seçeneği tıklayarak da ayarlayabilirsiniz.

OK’i tıkladığımızda belirttiğimiz dosyanın özniteliklerini değiştirme işlemini uygulattırırız. Permission(erişim hakkı) kısmında -rw-r--r-- olarak görünecektir.

Bu kodlama sisteminde(pek işiniz olmayacak ama bilgi açısından) açık olan özellikler baş harfleri yazılı, kapalı olan özellikler ise -(eksi) ile gösterilir.
d=dizin,
r=okunabilir,
w=yazılabilir,
x=çalıştırılabilir manasındadır.
Sıralama ise üstteki resimdeki seçenek sırası takip edilir.

Seçeneklerin hepsi seçili olsaydı chmod 777 olacaktı.

Penceredeki kelimelerin manaları:
OWNER: Kullanıcı hakları
GROUP: Ağ grubuna dahil olanların hakları
PUBLIC: Ağa ulaşabilen diğer kullanıcıların hakları.

READ: Dosyayı okuma hakkı
WRITE: Dosyaya yazma hakkı
EXECUTE: Dosyayı çalıştırma hakkı.

Öyleyse; chmod755 ile dosyayı, herkes çalıştırabilir ve okuyabilir, yazma hakkı sadece sahip olan kullanıcıya aittir.
Tekrar hatırlatayım. CHMOD yalnız UNIX ve türevleri sunucularda(Linux vs..) kullanılır. NT ve Windows sunucularda(server) yoktur.