Філософія Perl має тенденцію до того, щоб "робити те, що зараз практично". Якщо вам потрібно використовувати OOP, його є. Це не обов'язково у всіх рішеннях і змушувати людину писати код OOP, коли це просто "зробіть це, тоді це", тоді ця проблема типу часто зустрічається на користь продуктивних.
Багатопарадигмальний характер perl можна побачити в таких речах, як трансформація Шварца, яка має для нього дуже функціональні аспекти (в Ліспі вона відома як "прикрасити-сортувати-неприміряти"). OOP існує, як і процедурні (на зразок програмування на C) та імперативні (bash типу "зроби це тоді це").
Шаблони дизайну - це повторювані рішення загальних проблем. Вони існують у всіх мовах. Іноді ці візерунки називають ідіомами, хоча це також може стосуватися речей, які набагато простіші за візерунок.
За потреби багато класичних шаблонів дизайну GOF можуть бути реалізовані в перл. Шаблони дизайну Perl матимуть багато поширених імен, які знайомі з GOF. Не обов’язково випадок, що всі вони ідіоматичні.
Вивчаючи дизайнерські шаблони в perl, також врахуйте "Шаблони дизайну" не від Марка Домінуса .
Багато хто вважає, що шаблони дизайну є недоліками в мові . З цього погляду шаблони дизайну, такі як Ітератор, часто не потрібні. Не завжди - але часто.
Спочатку напишіть ідіоматичний perl. Не намагайтеся писати C в perl, або lisp в perl, або java в perl. Perl - перл. Якщо є проблема, яка стає більшою, ніж ідіоматичний perl, що вдається вирішити, і ви починаєте потребувати більш складних структур класу, тоді напишіть їх. Знайте шаблони дизайну, щоб можна було розпізнати "ця проблема тепер зросла до того, що потрібна абстрактна фабрика", - але не починайте намагатися зробити абстрактну фабрику в Perl, якщо вона вам не потрібна.
Деякі бібліотеки існують як в OOP, так і в більш традиційних формах. Див. Чи слід використовувати функціональні або об'єктно-орієнтовані інтерфейси CGI? для старого питання SO, де можна задати, яким способом користуватися бібліотекою.