http://qs321.pair.com?node_id=69286


in reply to ASCII Rulers

This is another approach that might not be shorter, but does work with ruler lengths that aren't a multiple of 10. Update: Just noticed that petral does it more neatly.
#!perl -w use strict; print ruler(@ARGV); sub ruler { my ($x,$y) = (' ', ''); map{$x.=sprintf('%10d',$_/10) if $_%10 == 0 && $_ != 0; $y.=$_%10} ( +0..$_[0]); return "$x\n$y\n"; }
I would have liked to use for rather than map, but I couldn't get the 1 line version to compile ;-(

I also can't get it to work with non-positive integer values ;-((.