Perl / Raku Leftovers
-
Issue #582 - 2022-09-19 - Grandfather’s Perl
I was pleasantly surprised when I found out that Dave came up with perfect response to the other blog post with this This is not your grandfather’s Perl. It has already created positive noise. If you want to take a closer look at the recent changes to the latest release of Perl v5.36 then please do checkout the GitHub repository sharing the changes with example. By the way, it is not just limited to v5.36. You will find plenty more to keep you busy.
-
2022.38 Another Wave - Rakudo Weekly News
Ben Davies has been working a lot on Data::Record, a module that introduces record types for maps, lists and tuples to the Raku Programming Language. Still not happy with the feature set, they described how the next wave of changes to the module may look.
-
Types, Objects, and Systems, Oh my! | AWNCORP [blogs.perl.org]
Perl isn't a strongly typed language, and its built-in types are limited and not generally accessible to the engineer, however, Perl supports various classes of data and in recent years has flirted with various ways of enabling runtime type checking.
In a strongly typed language the tl;dr; case for declaring data types is memory management, compile-time code optimization, and correctness. To this day I'm both impressed and horrified by the number of errors caught when I implement some kind of type checking in my programs. When it comes to runtime type checking we're only concerned with enforcing correctness.
Types, values, objects, signatures, and the systems that tie these all together, are all inextricably bound. They are necessarily interdependent in order to present/provide a cohesive and consistent system. Peeling back the layers a bit, types are merely classifications of data. Any given piece of data can be classified as belonging to a particular type whether implicit or explicit.
Types are instantiated (i.e. have concrete representations, i.e. instances) whenever data is created and/or declared as conforming to the type's criteria. Runtime types are arbitrary. A value of 1 can be said to be of type number where the value "1" can be said to be of the type string. Also in Perl, an object is a specific kind of reference; a reference tied to a particular namespace.