get_split_id.pl 857 Bytes
#!/usr/bin/env perl

# 
# If the command-line argument is 4, this script prints "0 1 2 3";
# If the command-line argument is 20, it prints 10 through 29.
# These numbers are used to allocate the names of split-up data 
# directories.  We make the names this way so that when we use globs
# to represent filenames with these numbers in, they remain in the correct
# order.  We don't use leading zeros for this purpose because they don't
# interact well with bash variable name indexing.

if (@ARGV != 2 || $ARGV[0] !~ m:^\d+$: || $ARGV[0] < 1) {
    die "Invalid command-line arguments (expect the number of splits)";
}

$n = $ARGV[0];
$start = 0;

if ($n > 10) { $start = 10; }
if ($n > 90) { $start = 100; }
if ($n > 900) { $start = 1000; }
if ($n > 9000) { $start = 10000; }

for ($x = $start; $x < $start + $n; $x++) {
    print $x . " ";
}
print "\n";