#!perl -w use strict; use Benchmark qw(:all); use Scalar::Util qw(refaddr); my $r = [0]; sub string { pack("A", "$r"); } sub numeric { pack("J", $r+0); } sub addr { pack("J", refaddr $r); } sub field { pack("J", $r->[0]); } my $result = timethese(-3, { String => \&string, Numeric => \&numeric, Refaddr => \&addr, "ID Field" => \&field, }); cmpthese($result);