#!/usr/bin/perl -w # Brian Caswell # # $Id: numbers.pl,v 1.1 2006/03/31 16:39:40 bmc Exp $ use warnings; use strict; sub integer { my ($in) = @_; my @in; my @re; while (length($in)) { push(@in, int(substr($in, 0, 1, ''))); } for (my $i = 0 ; $i <= $#in ; $i++) { if ($in[$i] < 9) { my $re; for (my $j = 0 ; $j < $i ; $j++) { $re .= $in[$j]; } $re .= '[' . ($in[$i] + 1) . '-9]'; my $rest = $#in - $i; if ($rest == 1) { $re .= '[0-9]'; } elsif ($rest) { $re .= '[0-9]' . "\x7b" . ($#in - $i) . "\x7d"; } $re =~ s/\[9-9\]/9/g; push(@re, $re); } } push(@re, '\d' . "\x7b" . ($#in + 2) . ",\x7d"); return join('|', reverse(@re)); } print '/' . integer($ARGV[0]) . "/\n";