Mercurial > op > Looping
changeset 6:5e09f7cf87f5
Perl版のソースコードを追加。
author | "uncorrelated zombie" <uncorrelated@yahoo.co.jp> |
---|---|
date | Thu, 17 Feb 2011 15:32:22 +0900 |
parents | 861b93741d60 |
children | 69b8c75e9c24 |
files | Looping.pl Looping.pm |
diffstat | 2 files changed, 40 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Looping.pl Thu Feb 17 15:32:22 2011 +0900 @@ -0,0 +1,21 @@ +#!/usr/bin/perl -w +use Time::HiRes qw(gettimeofday); +use Looping; + +sub gettimeofday_sec { + my ($sec, $microsec) = gettimeofday; + return $sec + $microsec*1e-6; +} + +my $o = Looping->new; +my $n = 1; + +my $t1 = gettimeofday_sec(); +for(my $c=0;$c<2147483647;$c++){ + $n = $o->calc($n); +} +my $t2 = gettimeofday_sec(); + +printf("%d\nPerl\t%f", $n, $t2 - $t1); + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Looping.pm Thu Feb 17 15:32:22 2011 +0900 @@ -0,0 +1,19 @@ +package Looping; + +sub new { + my $class = shift; + my $self = { + n0 => 1 + }; + bless $self, $class; +} + +sub calc { + my $self = shift; + my $n = shift; + my $n1 = $self->{n0} + (1 - 2*($n%2)); + $self->{n0} = $n; + return $n1; +} + +1;