"Pratik Çıkarma ve Raporlama Dili" anlamına gelen Perl, metin işleme yetenekleriyle bilinen yüksek seviyeli, genel amaçlı bir programlama dilidir. 1980'lerin sonlarında Larry Wall tarafından geliştirilen Perl, betik yazma, veri manipülasyonu ve web geliştirme için çok yönlü bir araç haline gelmiştir. Sıklıkla programlama dillerinin "İsviçre Ordusu bıçağı" olarak adlandırılan Perl, esnekliği, kapsamlı kütüphaneleri ve geliştiricilerin karmaşık görevleri minimum kod ile yönetmelerini sağlayan zengin yerleşik işlev seti ile karakterizedir.
Perl, 1987 yılında Larry Wall tarafından mevcut metin işleme ve rapor oluşturma araçlarının eksikliklerini gidermek için bir çözüm olarak yaratılmıştır. Başlangıçta Unix sistem yönetimi görevleri için tasarlanan Perl, çeşitli programlama dillerinden işlevsellik entegre etme yeteneği sayesinde hızla popülerlik kazanmıştır. Tasarımı, C, sed, awk ve shell betikleme gibi dillerden ilham almıştır.
Yıllar içinde Perl önemli ölçüde evrim geçirmiştir. 1994 yılında piyasaya sürülen Perl 5, nesne yönelimli programlama özellikleri ve sağlam bir modül sistemi gibi birçok iyileştirme sunarak Perl'in programlama alanındaki yerini sağlamlaştırmıştır. Kapsamlı Perl Arşiv Ağı (CPAN), Perl modüllerinin merkezi bir deposunu sağlamak için kurulmuş ve yeteneklerini daha da genişletmiştir.
Perl 6, daha sonra Raku olarak bilinen, Perl 5'e kardeş bir dil olarak tasarlanmış ve yenilenmiş bir sözdizimi ve özellikler sunmuştur. Perl'den Raku'ya geçiş birçok geliştirici için sorunsuz olmuştur. 2023 itibarıyla Perl, aktif bir topluluğa sahip olmaya devam etmekte ve daha yeni dillerle rekabet etmesine rağmen metin işleme, sistem yönetimi ve web geliştirme alanlarında geçerliliğini korumaktadır.
Perl, tek değerler tutabilen skalar değişkenleri belirtmek için $
sembolünü kullanır.
my $name = "John Doe";
my $age = 30;
Diziler @
ile, hash'ler (ilişkisel diziler) ise %
ile belirtilir.
my @colors = ("red", "green", "blue");
my %fruit_color = ("apple" => "red", "banana" => "yellow");
Perl, if
, unless
gibi kontrol yapıları ve for
, foreach
, while
gibi döngüler içerir.
if ($age > 18) {
print "Yetişkin\n";
}
foreach my $color (@colors) {
print "$color\n";
}
Perl, karmaşık dize eşleştirme ve manipülasyonunu sağlayan güçlü regex yetenekleri ile tanınır.
if ($name =~ /Doe$/) {
print "Soyadı Doe\n";
}
Perl, kodun yeniden kullanılabilirliğini ve modüler programlamayı sağlayan alt prosedürleri destekler.
sub greet {
my ($name) = @_;
return "Merhaba, $name!";
}
print greet("Alice");
Perl'in işlevleri bağlam duyarlılığı gösterir ve çağrıldıkları bağlama (skalar veya liste) göre farklı davranır.
my $count = @colors; # Skalar bağlam
my @copy = @colors; # Liste bağlam
Perl, değişkenlerin çift tırnaklı dizeler içinde doğrudan kullanılmasına izin verir.
print "Benim adım $name\n";
Perl, open
, read
ve close
gibi yerleşik işlevler aracılığıyla dosya işlemlerini basitleştirir.
open(my $fh, '<', 'file.txt') or die "Dosya açılamadı: $!";
while (my $line = <$fh>) {
print $line;
}
close($fh);
Perl, hataları yakalamak için eval
bloğunu kullanır.
eval {
die "Bir hata oluştu!";
};
if ($@) {
print "Hata yakalandı: $@";
}
Perl, paketler ve sınıflarla nesne yönelimli programlamayı destekler.
package Animal;
sub new {
my $class = shift;
my $self = {};
bless $self, $class;
return $self;
}
Perl esasen yorumlanan bir dildir ve genellikle Perl yorumlayıcısı aracılığıyla çalıştırılır. En yaygın uygulama Perl 5'tir ve Windows, Linux ve macOS gibi birçok platformda mevcuttur. Son yıllarda, Strawberry Perl ve ActivePerl gibi varyantlar, Windows sistemlerinde kurulumu basitleştirmek için ortaya çıkmıştır.
Perl, herhangi bir metin editöründe geliştirilebilirken, birkaç IDE ve metin editörü geliştirilmiş destek sunmaktadır:
Bir Perl projesi oluşturmak için geliştiriciler genellikle proje için bağımlılıkları ve yapılandırma seçeneklerini tanımlayan bir Makefile
veya Build.PL
dosyası ekler.
perl Makefile.PL
make
make test
make install
Perl, çeşitli alanlarda yaygın olarak kullanılmaktadır:
Perl'in tasarım felsefesi, pratiklik ve esnekliğe vurgu yapar, bu da onu diğer birçok programlama dilinden ayırır:
Perl kodunu başka bir dile çevirirken aşağıdakilere dikkat edin:
Perl için özel olarak yaygın bir kaynak-kaynağa çeviri aracı olmasa da, parrot
(yüksek seviyeli diller için kullanılan bir sanal makine) ve transpilerler gibi genel amaçlı araçlar süreci kolaylaştırabilir. Belirli uygulamalar için, hedef dilin deyimlerine uyum sağlamak amacıyla manuel yeniden yapılandırma gerekebilir.