The easiest example for modulus arithmetic is "clock" arithmetic, that is, counting hours on a n-hour clock, if your modulus is n :
4 =~ 8 =~ 0 =~ -4 =~ -8 (4)
3 =~ 4 == 3 (4)
-3 =~ 4 == 1 =~ 4 == 1 (4)
In principle, while the value is not within the range 0..n-1, you add/subtract the modulus to get closer to that range. So C is "wrong", because C implements the modulus as the remainder of the division, and Perl is right, because it implements the modulus as the modulus.
perl -MHTTP::Daemon -MHTTP::Response -MLWP::Simple -e ' ; # The
$d = new HTTP::Daemon and fork and getprint $d->url and exit;#spider
($c = $d->accept())->get_request(); $c->send_response( new #in the
HTTP::Response(200,$_,$_,qq(Just another Perl hacker\n))); ' # web