#! /usr/bin/perl -w use strict; use Benchmark qw(timethese); sub zeit_mit_func { # old function calling localtime several times (slightly modified) my $wtag = ("So","Mo","Di","Mi","Do","Fr","Sa")[(localtime)[6]]; my $mtag = sprintf("%02d", (localtime)[3]); my $monat = sprintf("%02d", (localtime)[4]+1); my $jahr = (localtime)[5] + 1900; my $stunde = sprintf("%02d", (localtime)[2]); my $minute = sprintf("%02d", (localtime)[1]); my $zeit = "$wtag $mtag\.$monat\.$jahr - $stunde\:$minute"; return $zeit; } sub zeit_mit_array { # new function calling localtime only once assigning it to an array my @zeit = localtime; my $wtag = ("So","Mo","Di","Mi","Do","Fr","Sa")[$zeit[6]]; my $mtag = sprintf("%02d", $zeit[3]); my $monat = sprintf("%02d", $zeit[4]+1); my $jahr = $zeit[5] + 1900; my $stunde = sprintf("%02d", $zeit[2]); my $minute = sprintf("%02d", $zeit[1]); my $zeit = "$wtag $mtag\.$monat\.$jahr - $stunde\:$minute"; return $zeit; } timethese (1E5, { 'func' => \&zeit_mit_func, 'array' => \&zeit_mit_array, });