SOLUTION

The BEGIN block in the middle establishes the @- array of element
abbreviations.  Next, the top of the script puts the Lanthanides
and Actinides in their appropriate places in the array, using the 
characters in the keys to the %- hash as bounds for the range in
the for statement.  Then, the value of $^_, a reversed list
of hex-based indicies into @-, is set.  After garbage characters
are removed from $^_, it is unpack'd, re-reversed, and converted
back to decimal for use in concatenating the chosen string of 
elements together into $_.  The y statement pushes all characters
in $_ to lowercase, removes repeated characters, and transforms
'i' to 'j'.  Finally, $_ is printed.
