#!/usr/bin/perl -w use strict; use Benchmark; use POSIX; Benchmark::cmpthese(100000, { 'Reference Implementation' => ' my @time = localtime(); my $time = sprintf("%04d%02d%02d%02d%02d%02d", $time[5] + 1900, $time[4] + 1, $time[3], $time[2], $time[1], $time[0]); ', 'Reverse Array' => ' my @time = localtime(); my $time = sprintf("%04d%02d%02d%02d%02d%02d", $time[5] + 1900, $time[4] + 1, reverse(@time[0 .. 3])); ', 'Shorter Array' => ' my @time = (localtime())[0 .. 5]; my $time = sprintf("%04d%02d%02d%02d%02d%02d", $time[5] + 1900, $time[4] + 1, $time[3], $time[2], $time[1], $time[0]); ', 'strftime by Joost' => ' my $time = strftime("%Y%m%d%H%S",localtime); ' });