Perl's testing is built into the core language, and the culture of testing has pushed users to create simple, effective tools for authoring and running tests. Perl's tools for introspection also makes it easy to test specific outcomes by overriding library or even core functions to return specific outcomes. For true flexibility, add the Inline module and test other languages or interfaces between them.
This talk describes the basics of Perl's testing modules for common data types and structure, overloading for complete testing, using coverage modules to validate the completeness and accuracy of the testing itself, Inline for testing other languages.
The example of executing this is on YouTube at:
https://www.youtube.com/watch?v=IXNwofjIZUM&list=PLA9_Hq3zhoFy5jmj6_Fd2YMuOjsovaIh-&index=54