in reply to Using Statistics::Descriptive for percentiles

use Tie::Array::Packed; tie my @n, 'Tie::Array::Packed::Number'; push @n, rand for 1..30_000_000; tied(@n)->sort; for (0, 25, 50, 75, 100) { printf "%03d%%: %6.4f\n", $_, $n[$#n*$_/100]; }
That runs in one minute in my computer