#!/usr/bin/ruby


# Number eval
var perl_code = <<'EOT';
    my $x = 12;
    my $y = 16;

    sqrt($x**2 + $y**2);
EOT


var num = Sys.eval(perl_code);
say num;

num == 20 || (
    "Wrong type for number!\n".die;
);


# Array eval
var array = Sys.eval(<<'EOT');
    my @factorials;

    sub factorial {
        my ($n) = @_;
        return 1 if $n <= 1;
        push @factorials, $n * factorial($n - 1);
        $factorials[-1];
    }

    factorial(5);
    \@factorials;
EOT

say array.dump;

array == [2, 6, 24, 120] || (
    "Wrong type for array!\n".die;
);