Perl is a weakly typed language with dynamic variable binding and that opens the door to a number of small programming mistakes that become bothering when software matures. A way to compensate for Perl's lack of type checking is to use some ideas from the programming by contract paradigm.

During this talk, we will go through the main ideas from the programming by contract paradigm and see how they are implemented by various Perl modules.

We will focus in particular on the module Sub::Contract that offers a simple and pragmatic implementation of the most useful aspects of contract programming.