#!/usr/bin/env perl use strict; use warnings; my @args = @ARGV; my %opt; $opt{f} = '%g'; foreach (@args) { if ($_ =~ /^-(\D)$/) { shift @args; $opt{$1} = shift @args; } else { last; } } my ($first, $increment, $last) = (1, 1, 1); if (scalar @args == 1) { $last = $args[0]; } elsif (scalar @args == 2) { $first = $args[0]; $last = $args[1]; } elsif (scalar @args == 3) { $first = $args[0]; $increment = $args[1]; $last = $args[2]; } else { die 'invalid argument(s)'; } for ( my $i = $first; ($increment > 0) ? $i <= $last : $i >= $last; $i += $increment ) { printf "$opt{f}\n", $i; }