Nice. The only thing I really want to change about that is that double map on $row. I'm thinking that I'd really like to alter the arrays in place instead of making a new copy to (hopefully) keep the memory requirements lower.
# Jeffa
rows => [
map {{ cols => [
map {
{ data => defined $_ ? encode_entities $_ : ' ' }
} @$_
] }} @$row
],
# becomes -{diotalevi}->
my ($row, $value);
for $row (@$rows)
{
for $value(@$row)
{
$value = { data => defined($value)
? encode_entities($value)
: ' ' };
}
$row = { cols => $row };
}
# and later
rows => \@rows
Update 0: I initially forgot to create the hash and array refs inline. My bad
Update 1: $row = { cols => $row } used to be $row = [ cols => $row ]
Update 2: rows => $rows was rows => \@rows
__SIG__ printf "You are here %08x\n", unpack "L!", unpack "P4", pack "L!", B::svref_2object(sub{})->OUTSIDE |