Task 1: "Self-descriptive Numbers Write a script to display the first three self-descriptive numbers. As per wikipedia, the definition of Self-descriptive Number is In mathematics, a self-descriptive number is an integer m that in a given base b is b digits long in which each digit d at position n (the most significant digit being at position 0 and the least significant at position b-1) counts how many instances of digit n are in m. For example: 1210 is a four-digit self-descriptive number: position 0 has value 1 i.e. there is only one 0 in the number position 1 has value 2 i.e. there are two 1 in the number position 2 has value 1 i.e. there is only one 2 in the number position 3 has value 0 i.e. there is no 3 in the number Output 1210, 2020, 21200 WARNING: I realised just before the launch this task was also part of the week 43 and contributed by Laurent Rosenfeld. It is too late to change now. Feel free to share your previous solutions if you took part in the week 43 already. I should have been more carefull, sorry. " My notes: well, as it happened I skipped task 43, so let's have a go. The important thing is: number of digits == base, which puts extra constraints on the digits. So try bases b = 2.. try all base b numbers for "self- descriptiveness" and then and stop after finding the first N self-descriptive numbers. Let's take N as a command line input for generality, default 3. Task 2: "List Methods Write a script to list methods of a package/class. Example package Calc; use strict; use warnings; sub new { bless {}, shift; } sub add { } sub mul { } sub div { } 1; Output BEGIN mul div new add " My notes: hmm, introspection. I genuinely can't remember how to do this without a but of googling. Isn't there a symbol table hash per package, that Memoize manipulates? Ah yes: the stash containing typeglobs.