Good idea on the formatting. It adds a lot to the presentation.
Here's the beta version of the the fish variant:
print join('', @$_)
,"\n" for map {@$_
-> [0] }map {[[map{@$a
=( @$a,$c=abs int sin(
$_* 0.1)* 6>=abs($b
-6));$c?[J,A,P,H]-> [$#$a%4]
:' '}@$_],$b++,]} ([1..44])x12;
APHJAPHJAPHJ APH
HJAPHJAPHJAPHJAPH PHJAPH
APHJAPHJAPHJAPHJAPHJA JAPHJAPH
HJAPHJAPHJAPHJAPHJAPHJAPH PHJAPHJAPH
APHJAPHJAPHJAPHJAPHJAPHJAPHJ APHJAPHJAPH
JAPHJAPHJAPHJAPHJAPHJAPHJAPHJAPHJAPHJAPHJAPH
APHJAPHJAPHJAPHJAPHJAPHJAPHJ APHJAPHJAPH
HJAPHJAPHJAPHJAPHJAPHJAPH PHJAPHJAPH
APHJAPHJAPHJAPHJAPHJA JAPHJAPH
HJAPHJAPHJAPHJAPH PHJAPH
APHJAPHJAPHJ APH