When I run the following script:
my @arr = [1..5000000];
for($i=0; $i<5000000; $i++) {
$arr[$i] = $i;
if($i % 1000000 == 0) {
Here are a few lines from an interactive pdl2
session showing how
this could be done using basic PDL constructs:
pdl> $arr = sequence(long, 5000000) + 1; # create pdl data array (a.k.a. a piddle)
pdl> help vars # see, it is only ~19MB
PDL variables in package main::
Name Type Dimension Flow State Mem
----------------------------------------------------------------
$arr Long D [5000000] P 19.07MB
$Pi Double D [] P 0.01KB
pdl> p which( $arr%1000000 == 0 ) # which returns indexes which are true
[999999 1999999 2999999 3999999 4999999]
See the on-line PDL book for a good introduction to what PDL can be used for. The PDL mailing lists are the best source of information on PDL usage and development. The responses are often rapid.