Perl'in felsefesi, "şimdi pratik olanı yapma" eğilimindedir. OOP kullanmanız gerekiyorsa, orada. Tüm çözümlerde gerekli değildir ve bir kişiyi basit bir "bunu yap o zaman bu" tip problemi olduğunda OOP kodu yazmaya zorlamak çoğu zaman karşı üretken olur.
Perl'in çok paradigma doğası , çok işlevsel yönleri olan Schwartz dönüşümü gibi şeylerde görülebilir (Lisp'de "süsle-sırala-süsle" olarak bilinir). OOP, prosedürel (C benzeri programlama) ve zorunludur (bash "bunu sonra o zaman yap" gibi) mevcuttur.
Tasarım Kalıpları, yaygın sorunlara tekrarlanan çözümlerdir. Her dilde var olurlar . Bazen bu kalıplara deyim denir, ancak bu bir kalıptan çok daha basit şeylere de işaret edebilir.
Gerektiğinde, klasik GOF Tasarım Desenlerinin çoğu perl'de uygulanabilir. Perl Tasarım Desenleri , insanların GOF'a aşina olduğu birçok ortak isme sahip olacaktır. Hepsinin deyimsel perl olması gerekli değildir.
Perl'deki tasarım desenlerini incelerken, lütfen Mark Dominus tarafından değil "Tasarım Desenleri" ni de not edin .
Birçoğu Tasarım Desenlerinin dilde eksiklik olduğunu düşünüyor . Bu açıdan, Yineleyici gibi Tasarım Desenleri perl'de genellikle gereksizdir. Her zaman değil ama sık sık.
İlk olarak, deyimsel perl yazın. Perl'de C, perl'de lisp veya perl'de java yazmaya çalışmayın. Perl perl'dir. Deyimsel perl'in üstesinden gelebilecek bir sorun varsa ve daha karmaşık sınıf yapılarına ihtiyaç duymaya başlarsanız, bunları yazın. "Bu sorun artık soyut bir fabrikaya ihtiyaç duyulan noktaya ulaştı" yı tanıyabilmek için tasarım kalıplarını bilin - ancak ihtiyacınız yoksa perl'de soyut bir fabrika yapmaya çalışmayın.
Bazı kütüphaneler hem OOP hem de daha geleneksel formlarda bulunur. Bkz . İşlev yönelimli veya nesne yönelimli CGI arabirimlerini kullanmalı mıyım? eski bir SO sorusu için nerede kütüphane kullanmak için hangi yolu sorar.