#!/usr/bin/env perl use strict; use warnings; use PDL; use Benchmark qw(:all); cmpthese( 100, { 'pdl_values' => sub {&pdl_value}, 'perl_values' => sub {&perl_scalar_value}, } ); exit; sub pdl_value { my $pdl = ones( float, 10000 ); my $nelem = nelem($pdl); for ( my $i = 0; $i < $nelem; ++$i ) { my $val = $pdl->index($i); #Do something } return; } sub perl_scalar_value { my $pdl = ones( float, 10000 ); my $nelem = nelem($pdl); for ( my $i = 0; $i < $nelem; ++$i ) { my $val = $pdl->at($i); #Do something } return; }