The synopsis for Imager::Heatmap can not be run as is. It doesn't create $base_img, it doesn't show how to properly use matrix, etc. So it is no surprise that what you ended up with didn't work.
Try this as a starting point. It uses your data and creates a png file in the current directory.
my $hmap = Imager::Heatmap->new(
xsize => 640, # Image width
ysize => 480, # Image height
xsigma => 10, # Sigma value of X-direction
ysigma => 10, # Sigma value of Y-direction
# @point_datas should be: ( [ x1, y1, weight1 ], [ x2, y2, weight2 ] .
my @point_datas = ( [ 10, 20, 50 ], [ 20, 40, 70 ] );
# Add point datas to construct density matrix
# After adding datas, get heatmap as Imager instance.
my $img = $hmap->draw;
# create png file in current directory
$img->write( file => './hm.png' );
Here's the generated heatmap image.