#!/usr/bin/perl open (X,$0);X([]);sub X{$x=shift;print pack("C*", map{s|X|**|g;s|x|*|g;eval;}(split(/\|/,join("", map{s|\#||;eval}(grep/x/,(grep/^\#/,@$x))))));} #$x="2x37|13x3X2|23x5|29x2X2|2X5|5x13|5x2x11|3x37|29x2X2|13x2X3|101|19x3x2"; #$x="|2X5|2X4x5|101|19x3x2|3X3x2X2|2X5|2X3x3X2|97|3X2x11|107|101|19x3x2"; #### use CGI qw(param); my %hash= map{my $v=[param($_)];$_,$#$v>0?join ("\0",@$v):shift@$v}param(); #### my $x=50; #blocksize foreach (my $i=0;$i<=int($#ary/50);$i++) { my $end = ($x*$i+$x-1>=$#ary?$#ary:($x*$i+$x-1); my @keep = @ary[$i*$x..$end]; # Do stuff with @keep } #### my @sorted; my @array=(0..10); @first = splice (@array, 0, int(($#array+2)/2)); @sorted=map{(shift @first, shift @array)}(0..$#array); push (@sorted, shift @first) if ++$#first;