← man/dev_and_programming
perl — man perl — 80×24
ugur@toprak:~/man/dev_and_programming$man perl
Bölüm 1 Geliştirme & Programlama

perl

Perl 5 dili yorumlayıcısı

Synopsis

       perl [ -sTtuUWX ]   [ -hv ] [ -V[:configvar] ]
	    [ -cw ] [ -d[t][:debugger] ] [ -D[number/list] ]
	    [ -pna ] [ -Fpattern ] [ -l[octal] ] [ -0[octal/hexadecimal] ]
	    [ -Idir ] [ -m[-]module ] [ -M[-]'module...' ] [ -f ]  [ -C [number/list] ]     [ -S ]
	    [ -x[dir] ]    [ -i[extension] ]
	    [ [-e|-E] 'command' ] [ -- ] [ programfile ] [ argument ]...

       Bu seçenekler hakkında daha fazla bilgi edinmek için "perldoc perlrun" komutunu çalıştırabilirsiniz.

Getting Help

perldoc programı, Perl ile birlikte gelen tüm belgelere erişmenizi sağlar. Çevrimiçi olarak https://www.perl.org/ adresinden daha fazla belgeye, öğreticiye (tutorial) ve topluluk desteğine ulaşabilirsiniz.

Perl konusunda yeniyseniz, yeni başlayanlar için genel bir giriş niteliğinde olan ve Perl'ün kapsamlı belgelerinin geri kalanında yolunuzu bulmanıza yardımcı olacak bazı arka plan bilgileri sağlayan "perldoc perlintro" komutunu çalıştırarak başlamalısınız. perldoc ile yapabileceğiniz diğer şeyleri öğrenmek için "perldoc perldoc" komutunu çalıştırın.

Erişim kolaylığı için Perl kılavuzu birkaç bölüme ayrılmıştır.

Overview perl Perl genel bakış (bu bölüm) perlintro Yeni başlayanlar için Perl'e giriş perlrun Perl yürütülmesi ve seçenekleri perltoc Perl belgeleri içindekiler tablosu

Tutorials perlreftut Perl referanslarına kısa giriş perldsc Perl veri yapılarına giriş perllol Perl veri yapıları: dizilerin dizileri

perlrequick Perl düzenli ifadeleri (regular expressions) hızlı başlangıç perlretut Perl düzenli ifadeleri öğreticisi

perlootut Yeni başlayanlar için Perl OO (nesne yönelimli) öğreticisi

perlperf Perl Performans ve Optimizasyon Teknikleri

perlstyle Perl stil kılavuzu

perlcheat Perl kopya kağıdı perltrap Dikkatsizler için Perl tuzakları perldebtut Perl hata ayıklama öğreticisi

perlfaq Perl sıkça sorulan sorular perlfaq1 Perl Hakkında Genel Sorular perlfaq2 Perl Edinme ve Öğrenme perlfaq3 Programlama Araçları perlfaq4 Veri İşleme perlfaq5 Dosyalar ve Biçimler perlfaq6 Düzenli İfadeler (Regex) perlfaq7 Perl Dili Sorunları perlfaq8 Sistem Etkileşimi perlfaq9 Ağ İletişimi

Reference Manual perlsyn Perl sözdizimi (syntax) perldata Perl veri yapıları perlop Perl işleçleri ve önceliği perlsub Perl alt programları (subroutines) perlfunc Perl yerleşik işlevleri (built-in functions) perlopentut Perl open() öğreticisi perlpacktut Perl pack() ve unpack() öğreticisi perlpod Perl plain old documentation (POD) perlpodspec Perl plain old documentation biçim spesifikasyonu perldocstyle Çekirdek belgeler için Perl stil kılavuzu perlpodstyle Perl POD stil kılavuzu perldiag Perl tanı mesajları perldeprecation Perl amortismanları (deprecations) perllexwarn Perl uyarıları ve denetimi perldebug Perl hata ayıklama perlvar Perl önceden tanımlanmış değişkenleri perlre Perl düzenli ifadeleri, hikayenin geri kalanı perlrebackslash Perl düzenli ifade ters eğik çizgi dizileri perlrecharclass Perl düzenli ifade karakter sınıfları perlreref Perl düzenli ifadeleri hızlı başvuru perlref Perl referansları, hikayenin geri kalanı perlform Perl biçimleri perlobj Perl nesneleri perltie Basit değişkenlerin arkasına gizlenmiş Perl nesneleri perldbmfilter Perl DBM filtreleri

perlipc Perl süreçler arası iletişim (interprocess communication) perlfork Perl fork() bilgileri perlnumber Perl sayı anlambilimi

perlthrtut Perl iş parçacığı (threads) öğreticisi

perlport Perl taşınabilirlik kılavuzu perllocale Perl yerel ayar (locale) desteği perluniintro Perl Unicode'a giriş perlunicode Perl Unicode desteği perlunicook Perl Unicode yemek kitabı (cookbook) perlunifaq Perl Unicode SSS (FAQ) perluniprops Perl'deki Unicode özelliklerinin indeksi perlunitut Perl Unicode öğreticisi perlebcdic Perl'ün EBCDIC platformlarında çalıştırılmasına ilişkin hususlar

perlsec Perl güvenliği perlsecpolicy Perl güvenlik raporu işleme politikası

perlmod Perl modülleri: nasıl çalışırlar perlmodlib Perl modülleri: nasıl yazılır ve kullanılır perlmodstyle Perl modülleri: tarz sahibi modüller nasıl yazılır perlmodinstall Perl modülleri: CPAN'dan nasıl kurulur perlnewmod Perl modülleri: dağıtım için yeni bir modül hazırlama perlpragma Perl modülleri: kullanıcı pragması yazma

perlutil Perl dağıtımıyla birlikte paketlenmiş araçlar

perlfilter Perl kaynak filtreleri

perldtrace Perl'ün DTrace desteği

perlglossary Perl Sözlüğü

Internals and C Language Interface perlembed Perl'ü C veya C++ uygulamanıza yerleştirmenin (embed) yolları perldebguts Perl hata ayıklama esasları ve ipuçları perlxstut Perl XS öğreticisi perlxs Perl XS uygulama programlama arayüzü perlxstypemap Perl XS C/Perl tip dönüştürme araçları perlclib Standart C kütüphanesi işlevleri için dahili alternatifler perlguts Uzantı yazanlar için Perl dahili işlevleri perlcall C'den Perl çağırma kuralları perlmroapi Perl metot çözümleme eklentisi arayüzü perlreapi Perl düzenli ifade eklentisi arayüzü perlreguts Perl düzenli ifade motoru iç yapısı

perlapi Perl API listesi (otomatik oluşturulmuş) perlintern Perl dahili işlevleri (otomatik oluşturulmuş) perliol Katmanlardaki G/Ç'nin Perl uygulaması için C API'si perlapio Perl dahili G/Ç soyutlama arayüzü

perlhack Perl hacker kılavuzu perlsource Perl kaynak ağacı kılavuzu perlinterp Perl yorumlayıcı kaynağına genel bakış ve nasıl çalıştığı perlhacktut Basit bir C kodu yamasının oluşturulması sürecini adım adım inceleyin perlhacktips Perl çekirdek C kodu geliştirme ipuçları perlpolicy Perl geliştirme politikaları perlgov Perl Yönetim Kuralları perlgit Perl deposuyla git kullanımı

History perlhist Perl geçmiş kayıtları perldelta Önceki sürümden bu yana Perl değişiklikleri perl5340delta Sürüm 5.34.0'daki Perl değişiklikleri perl5321delta Sürüm 5.32.1'deki Perl değişiklikleri perl5320delta Sürüm 5.32.0'daki Perl değişiklikleri perl5303delta Sürüm 5.30.3'deki Perl değişiklikleri perl5302delta Sürüm 5.30.2'deki Perl değişiklikleri perl5301delta Sürüm 5.30.1'deki Perl değişiklikleri perl5300delta Sürüm 5.30.0'daki Perl değişiklikleri perl5283delta Sürüm 5.28.3'deki Perl değişiklikleri perl5282delta Sürüm 5.28.2'deki Perl değişiklikleri perl5281delta Sürüm 5.28.1'deki Perl değişiklikleri perl5280delta Sürüm 5.28.0'daki Perl değişiklikleri perl5263delta Sürüm 5.26.3'deki Perl değişiklikleri perl5262delta Sürüm 5.26.2'deki Perl değişiklikleri perl5261delta Sürüm 5.26.1'deki Perl değişiklikleri perl5260delta Sürüm 5.26.0'daki Perl değişiklikleri perl5244delta Sürüm 5.24.4'deki Perl değişiklikleri perl5243delta Sürüm 5.24.3'deki Perl değişiklikleri perl5242delta Sürüm 5.24.2'deki Perl değişiklikleri perl5241delta Sürüm 5.24.1'deki Perl değişiklikleri perl5240delta Sürüm 5.24.0'daki Perl değişiklikleri perl5224delta Sürüm 5.22.4'deki Perl değişiklikleri perl5223delta Sürüm 5.22.3'deki Perl değişiklikleri perl5222delta Sürüm 5.22.2'deki Perl değişiklikleri perl5221delta Sürüm 5.22.1'deki Perl değişiklikleri perl5220delta Sürüm 5.22.0'deki Perl değişiklikleri perl5203delta Sürüm 5.20.3'deki Perl değişiklikleri perl5202delta Sürüm 5.20.2'deki Perl değişiklikleri perl5201delta Sürüm 5.20.1'deki Perl değişiklikleri perl5200delta Sürüm 5.20.0'deki Perl değişiklikleri perl5184delta Sürüm 5.18.4'deki Perl değişiklikleri perl5182delta Sürüm 5.18.2'deki Perl değişiklikleri perl5181delta Sürüm 5.18.1'deki Perl değişiklikleri perl5180delta Sürüm 5.18.0'deki Perl değişiklikleri perl5163delta Sürüm 5.16.3'deki Perl değişiklikleri perl5162delta Sürüm 5.16.2'deki Perl değişiklikleri perl5161delta Sürüm 5.16.1'deki Perl değişiklikleri perl5160delta Sürüm 5.16.0'deki Perl değişiklikleri perl5144delta Sürüm 5.14.4'deki Perl değişiklikleri perl5143delta Sürüm 5.14.3'deki Perl değişiklikleri perl5142delta Sürüm 5.14.2'deki Perl değişiklikleri perl5141delta Sürüm 5.14.1'deki Perl değişiklikleri perl5140delta Sürüm 5.14.0'deki Perl değişiklikleri perl5125delta Sürüm 5.12.5'deki Perl değişiklikleri perl5124delta Sürüm 5.12.4'deki Perl değişiklikleri perl5123delta Sürüm 5.12.3'deki Perl değişiklikleri perl5122delta Sürüm 5.12.2'deki Perl değişiklikleri perl5121delta Sürüm 5.12.1'deki Perl değişiklikleri perl5120delta Sürüm 5.12.0'deki Perl değişiklikleri perl5101delta Sürüm 5.10.1'deki Perl değişiklikleri perl5100delta Sürüm 5.10.0'deki Perl değişiklikleri perl589delta Sürüm 5.8.9'daki Perl değişiklikleri perl588delta Sürüm 5.8.8'daki Perl değişiklikleri perl587delta Sürüm 5.8.7'daki Perl değişiklikleri perl586delta Sürüm 5.8.6'daki Perl değişiklikleri perl585delta Sürüm 5.8.5'daki Perl değişiklikleri perl584delta Sürüm 5.8.4'daki Perl değişiklikleri perl583delta Sürüm 5.8.3'daki Perl değişiklikleri perl582delta Sürüm 5.8.2'daki Perl değişiklikleri perl581delta Sürüm 5.8.1'daki Perl değişiklikleri perl58delta Sürüm 5.8.0'daki Perl değişiklikleri perl561delta Sürüm 5.6.1'deki Perl değişiklikleri perl56delta Sürüm 5.6'daki Perl değişiklikleri perl5005delta Sürüm 5.005'deki Perl değişiklikleri perl5004delta Sürüm 5.004'deki Perl değişiklikleri

Miscellaneous perlbook Perl kitap bilgileri perlcommunity Perl topluluk bilgileri

perldoc Pod biçiminde Perl belgelerini arama

perlexperiment Perl'deki deneysel özelliklerin listesi

perlartistic Perl Sanatsal Lisansı (Artistic License) perlgpl GNU Genel Kamu Lisansı (GPL)

Language-Specific perlcn Basitleştirilmiş Çince için Perl (UTF-8 formatında) perljp Japonca için Perl (EUC-JP formatında) perlko Korece için Perl (EUC-KR formatında) perltw Geleneksel Çince için Perl (Big5 formatında)

Platform-Specific perlaix AIX için Perl notları perlamiga AmigaOS için Perl notları perlandroid Android için Perl notları perlbs2000 POSIX-BC BS2000 için Perl notları perlcygwin Cygwin için Perl notları perldos DOS için Perl notları perlfreebsd FreeBSD için Perl notları perlhaiku Haiku için Perl notları perlhpux HP-UX için Perl notları perlhurd Hurd için Perl notları perlirix Irix için Perl notları perllinux Linux için Perl notları perlmacos Mac OS (Classic) için Perl notları perlmacosx Mac OS X için Perl notları perlnetware NetWare için Perl notları perlopenbsd OpenBSD için Perl notları perlos2 OS/2 için Perl notları perlos390 OS/390 için Perl notları perlos400 OS/400 için Perl notları perlplan9 Plan 9 için Perl notları perlqnx QNX için Perl notları perlriscos RISC OS için Perl notları perlsolaris Solaris için Perl notları perlsynology Synology için Perl notları perltru64 Tru64 için Perl notları perlvms VMS için Perl notları perlvos Stratus VOS için Perl notları perlwin32 Windows için Perl notları

Stubs for Deleted Documents perlboot perlbot perlrepository perltodo perltooc perltoot

Unix benzeri bir sistemde, bu belge dosyaları genellikle man programıyla kullanılmak üzere man sayfaları olarak da mevcut olacaktır.

Bazı belgeler man sayfaları olarak mevcut değildir, bu nedenle man tarafından bir çapraz referans bulunamazsa, perldoc ile deneyin. Perldoc sizi doğrudan işlevlerin belgelerine de götürebilir (-f anahtarı ile). perldoc'un sunduğu diğer yararlı seçenekler için "perldoc --help" (veya "perldoc perldoc" ya da "man perldoc") komutuna bakın.

Genel olarak, programınızda garip bir şeyler ters gittiyse ve yardım için nereye bakmanız gerektiğinden emin değilseniz, kodunuzu use strict ve use warnings yönergelerine uyumlu hale getirmeyi deneyin. Bunlar genellikle sorunun tam olarak nerede olduğunu gösterecektir.

Description

Perl resmi olarak Practical Extraction and Report Language (Pratik Çıkarım ve Raporlama Dili) anlamına gelir, tabii aksi durumlar hariç.

Perl, başlangıçta rastgele metin dosyalarını taramak, bu metin dosyalarından bilgi çıkarmak ve bu bilgilere dayanarak raporlar yazdırmak için optimize edilmiş bir dildi. Hızla many sistem yönetimi görevi için iyi bir dil haline geldi. Yıllar geçtikçe Perl, genel amaçlı bir programlama diline dönüştü. Hızlı "tek satırlık" (one-liners) kodlardan tam ölçekli uygulama geliştirmeye kadar her şey için yaygın olarak kullanılmaktadır.

Dilin güzel (küçük, zarif, minimal) olmasından ziyade pratik (kullanımı kolay, verimli, eksiksiz) olması amaçlanmıştır. sed, awk ve sh'in en iyi özelliklerinden bazılarını bir araya getirerek (en azından yazarın görüşüne göre) Unix kullanıcılarının sinir bozucu sorunlara hızlı çözümler üretmesini tanıdık ve kolay hale getirir. Genel amaçlı programlama yetenekleri; yordamsal, işlevsel ve nesne yönelimli programlama paradigmalarını destekleyerek, eğiliminiz ne olursa olsun Perl'ü büyük projelerde uzun vadede rahatça kullanabileceğiniz bir dil haline verir.

Perl'ün metin işlemedeki kökleri yıllar içinde unutulmamıştır. Hala her yerde bulunabilecek en güçlü düzenli ifadelerden bazılarına sahiptir ve Unicode metin desteği dünya standartlarındadır. Kapsamlı bir uzantı koleksiyonu aracılığıyla her türlü yapılandırılmış metni de işler. CPAN'da toplanan bu kütüphaneler, şaşırtıcı çeşitlilikteki sorunlara hazır çözümler sunar. Kendileri standardı belirlemediklerinde, en iyilerden çalarlar -- tıpkı Perl'ün kendisi gibi.

Availability

Perl, neredeyse tüm Unix benzeri platformlar dahil olmak üzere çoğu işletim sistemi için mevcuttur. Bir liste için perlport içindeki "Supported Platforms" bölümüne bakın.

Environment

Bkz. perlrun içindeki "ENVIRONMENT".

Author

Larry Wall larry@wall.org, diğer birçok insanın yardımıyla.

Perl başarı hikayeleriniz ve referanslarınız, uygulamalarında Perl kullanımını savunmak isteyen diğer kişilere yardımcı olabilecekse veya Larry'ye ve Perl geliştiricilerine şükranlarınızı ifade etmek istiyorsanız, lütfen perl-thanks@perl.org adresine yazın.

Files

"@INC" perl kütüphanelerinin konumları

Yukarıdaki "@INC", aynı adlı yerleşik değişkene bir referanstır; daha fazla bilgi için perlvar belgesine bakın.

See Also

https://www.perl.org/ Perl ana sayfası https://www.perl.com/ Perl makaleleri https://www.cpan.org/ Kapsamlı Perl Arşivi (Comprehensive Perl Archive) https://www.pm.org/ Perl Mongers grubu

Diagnostics

"use strict" pragmasının kullanılması, tüm değişkenlerin düzgün bir şekilde tanımlanmasını sağlar ve eski Perl özelliklerinin diğer hatalı kullanımlarını önler.

"use warnings" pragması bazı güzel tanılama mesajları üretir. -w bayrağı da kullanılabilir, ancak kontrolünüz dışındakiler de dahil olmak üzere yürütülen tüm Perl kodlarına uygulandığı için kullanımı normalde önerilmez.

Perl'ün tüm tanılamalarının açıklamaları için perldiag belgesine bakın. "use diagnostics" pragması, Perl'ün normalde kısa olan uyarılarını ve hatalarını otomatik olarak bu daha uzun biçimlere dönüştürür.

Derleme hataları, hatanın satır numarasını ve incelenecek bir sonraki belirteç (token) veya belirteç türünün bir göstergesini verecektir. (Perl'e -e anahtarları aracılığıyla aktarılan bir betikte, her -e bir satır olarak sayılır.)

Setuid betikleri, "Insecure dependency" (Güvensiz bağımlılık) gibi hata mesajları üretebilen ek kısıtlamalara sahiptir. Bkz. perlsec.

Kesinlikle use warnings pragmasını kullanmayı düşünmeniz gerektiğinden bahsetmiş miydik?

Bugs

use warnings pragması tarafından ima edilen davranış zorunlu değildir.

Perl, makinenizin tip dönüşümü (type casting), atof() ve sprintf() ile kayan nokta çıktısı gibi çeşitli işlemlerin tanımlarının insafına kalmıştır.

stdio'nuz belirli bir akışta okuma ve yazma işlemleri arasında bir seek veya eof gerektiriyorsa, Perl de gerektirir. (Bu durum sysread() ve syswrite() için geçerli değildir.)

Yerleşik veri türlerinin hiçbirinde (bellek boyutu dışında) herhangi bir keyfi boyut sınırı bulunmamakla birlikte, hala birkaç keyfi sınır vardır: belirli bir değişken adı 251 karakterden uzun olamaz. Tanılamalar tarafından görüntülenen satır numaraları dahili olarak kısa tamsayılar (short integers) olarak saklanır, bu nedenle maksimum 65535 ile sınırlıdırlar (daha yüksek sayılar genellikle taşmadan (wraparound) etkilenir).

Hata raporlarınızı (perl kaynak ağacındaki myconfig programı veya "perl -V" çıktısı olarak tam yapılandırma bilgilerini eklediğinizden emin olun) https://github.com/Perl/perl5/issues adresine gönderebilirsiniz.

Perl aslında Pathologically Eclectic Rubbish Lister (Patolojik Olarak Eklektik Çöp Listesi) anlamına gelir, ama bunu kimseye söylediğimi çaktırmayın.

Notes

Perl sloganı "Bir şeyi yapmanın birden fazla yolu vardır." (There's more than one way to do it.) Kaç tane daha olduğunu bulmak okuyucuya bir alıştırma olarak bırakılmıştır.

Bir programcının üç temel erdemi Tembellik, Sabırsızlık ve Kibirdir (Laziness, Impatience, Hubris). Nedenini öğrenmek için Camel Book'a bakın.

perl v5.34.1 2022-02-26 PERL(1)