Question 6: Another Perl solution 

#!/usr/bin/perl

use strict;
use warnings;
use IO::Socket::SSL qw();
use HTML::Grabber;
use WWW::Mechanize;
use List::Util qw(max);
use 5.014;

my $mech = WWW::Mechanize->new(ssl_opts => {
    SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE,
    verify_hostname => 0,
});
$mech->get('https://codewars.nzpug.org/spreadsheet/question-001');

sub MAX {
    my ($string) = @_;
    return max(split(/\s*,\s*/, $string));
}

while (1) {
    say $mech->uri;
    my $dom = HTML::Grabber->new(html => $mech->content);
    my $formula = $dom->find('[name="formula"]')->attr('value');
    my $data = parse_data($dom);
    print $formula;

    $formula =~ s/([A-Z])(\d+)/$data->{$2}{$1}/eg;
    $formula =~ s/SQRT\((.*)\)/$1**0.5/eg;
    $formula =~ s/MAX\((.*)\)/MAX($1)/eg;

    print ' => ', $formula, ' => ', eval($formula);
    say '';
    $mech->submit_form(with_fields => {
        solution => eval $formula,
    });
}

sub parse_data {
    my $dom = shift;
    my $data = {};

    my $row = 0;
    $dom->find('tr')->each(sub {
        my $tr = shift;
        my $cell = 'A';
        $tr->find('td')->each(sub {
            my $td = shift;
            $data->{$row}{$cell} = $td->text;
            $cell++;
        });
        $row++;
    });

    return $data;
}