#!/usr/bin/perl -w use strict; while ( ) { my ( $items, $cols ) = split; print "Spread for $items, $cols = ", spread( $items, $cols ), "\n"; } sub spread { my ($a, $cols) = @_; $a ||= 0; return unless $cols > 0; # avoid nasty surprises return $a if $cols == 1; #trivial case if ( $a % $cols) { return join '-', ( (int( $a / ($cols - 1) )) x ( $cols - 1), ( $a % ($cols - 1))); } else { return join '-', (int ( $a / $cols)) x $cols; } } __DATA__ 19 3 20 5 22 7 2 47 0 9 899 0