##
my @fulls =
map { my $area = $_; map "$_.area$area", @shorts }
@areas;
####
my @fulls =
map { my $short = $_; map "$short.area$_", @areas }
@shorts;
####
use Algorithm::Loops qw( NestedLoops );
my @fulls = NestedLoops(
[ \@areas, \@shorts ],
sub { "$_[1].area$_[0]" },
);