#!/usr/local/bin/perl $totalcount=0; $mistake=0; $total=250; while($totalcount<$total) { $no1=int(rand(time))%30; $no2=int(rand(time))%30; if($no1==0) { $no1++; } if($no2==0) { $no2++; } $plus=int(rand(time))%2; $answer=0; $wronglook=0; GETINPUT: if($plus==0) { $answer=$no1 + $no2; print "$no1 + $no2 ="; if($no1>$no2) { $wronglook=$no1 - $no2; } else { $wronglook=$no2 - $no1; } } else { $wronglook=$no1 + $no2; if($no1>$no2) { print "$no1 - $no2 ="; $answer=$no1 - $no2; } else { print "$no2 - $no1 ="; $answer=$no2- $no1; } } $userinput = <STDIN>; chomp($userinput); if(length($userinput)==0) { print "Please input your answer\n"; goto GETINPUT; } $totalcount++;; if($userinput == $answer) { print "Great!!!! you did good job , the answer is Correct $userinput\n"; } elsif($wronglook==$userinput) { print "Almost there!Let's take a second look at Operation sign is it + or -\n"; goto GETINPUT; } else { $mistake++; print "wrong, the correct answer is ".$answer."\n"; } if($totalcount%10==0) { $score=int(100-$mistake*100/$totalcount); $left=$total-$totalcount; $leftpercent=int($totalcount*100/400); print "$totalcount problems done, ".$left." to go. finishing ".$leftpercent."\%. Score correct percentage rate ".$score."\%\n"; } }
Tag Archives: PERL
POE JSON P
use warnings;
use strict;
use Data::Dumper;
use JSON;
use POE qw(Component::Server::TCP Filter::HTTPD);
use HTTP::Response;
# Load HTTP::Request for forming the initial request.
use HTTP::Request;
use POE qw(Wheel::ReadWrite Filter::Stream);
# Create a JSON object
my $json = new JSON;
POE::Component::Server::TCP->new(
Port => 8088,
ClientFilter => ‘POE::Filter::HTTPD’, ### sub {
my ($kernel, $heap, $request) = @_[KERNEL, HEAP, ARG0];
print Dumper($request);
# It’s a response for the client if there was a problem.
if ($request->isa(“HTTP::Response”)) {
my $response = $request;
$request = $response->request;
warn “ERROR: “, $request->message if $request;
$_[HEAP]{client}->put($response);
$_[KERNEL]->yield(“shutdown”);
return;
}
my $uri=$request->{‘_uri’};
my %query = $uri->query_form;
print “query is “.join(” “,keys %query).” \n”;
#$request = $json->utf8->decode();
my $request_fields = ”;
$request->headers()->scan(
sub {
my ($header, $value) = @_;
$request_fields .= (
”
$header$value
”
);
}
);
my @list = ( 1, 2, \%query );
my $json = new JSON;
my $json_text = $json->encode(\@list);
my $returntext=”$query{‘callback’}($json_text )”;
$heap->{‘message’}=$returntext;
my $response = HTTP::Response->new(200);
$response->push_header( ‘Content-type’, ‘text/javascript’ );
$response->content(
$returntext
);
#print $json_text;
#print Dumper($request);
$_[HEAP]{client}->put($response);
},
);
print “Aim your browser at port 8088 of this host.\n”;
POE::Kernel->run();
exit;
HTML
<script type=”text/javascript”>// <![CDATA[
$(document).ready(function(){
$(“button”).click(function(){
alert(“test”);
$.ajax({
url: “http://localhost:8088/abc.php?xxx=bbbxss“,
// the name of the callback parameter, as specified by the YQL service
jsonp: “callback”,
// tell jQuery we’re expecting JSONP
dataType: “jsonp”,
// tell YQL what we want and that we want JSON
data: {
q: “select title,abstract,url from search.news where query=\”cat\””,
format: “json”
},
// work with the response
success: function( response ) {
console.log( response ); // server response
//var _body = document.getElementsByTagName(‘body’) [0];
//_body.appendChild(response);
}
});
})
})
// ]]></script>
<button>Get JSON data</button>
<div> </div>