forked from azawawi/farabi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_mojo.pl
executable file
·64 lines (54 loc) · 1.36 KB
/
test_mojo.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env perl
use Modern::Perl;
use Mojolicious::Lite;
use Mojo::IOLoop ();
use Scalar::Util ();
my @results;
get '/' => sub {
my $self = shift;
my $html;
if ( scalar @results > 0 ) {
$html = 'Most recent results calculated results:<table border="1">';
for my $result ( reverse @results ) {
$html .=
'<tr><td>'
. $result->[0]
. '</td><td>'
. $result->[1]
. '</td></tr>';
}
$html .= '</table>';
}
else {
$html = '';
}
$self->render( text => <<HTML);
<form action="/calc">
<label for="name">Number:</label>
<input type="text" id="num" name="num"></input>
<input type="submit" value="Calculate square root"></input>
</form>
$html
HTML
};
get '/calc' => sub {
my $self = shift;
my $num = $self->param('num');
unless ( Scalar::Util::looks_like_number($num) ) {
return "Please enter a valid number";
}
Mojo::IOLoop->timer(
0 => sub {
# Calculate square of a number or do your expensive operation here
my $result = [ $num, $num * $num ];
push @results, $result;
}
);
$self->render( text => <<HTML);
Thanks for entering <strong>$num</strong>.
<p>
Please click <a href="/">here</a> to return to the previous form.|
</p>
HTML
};
app->start;