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;