in reply to [Solved] Generate list from a to arbitrary letter
The auto-increment operator has a little extra builtin magic to it. If you increment a variable that is numeric, or that has ever been used in a numeric context, you get a normal increment. If, however, the variable has been used in only string contexts since it was set, and has a value that is not the empty string and matches the pattern /^[a-zA-Z]*[0-9]*\z/, the increment is done as a string, preserving each character within its range, with carry:So, you could generate your list with:
print ++($foo = "99"); # prints "100"
print ++($foo = "a0"); # prints "a1"
print ++($foo = "Az"); # prints "Ba"
print ++($foo = "zz"); # prints "aaa"
or some close variant.my $max = 703; my @letters; my $current = 'a'; for (1 .. $max) { push @letters, $current++; }
#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Generate list from a to arbitrary letter
by AnomalousMonk (Archbishop) on Nov 20, 2013 at 23:35 UTC | |
by Eily (Monsignor) on Nov 21, 2013 at 00:42 UTC | |
|
Re^2: Generate list from a to arbitrary letter
by boftx (Deacon) on Nov 20, 2013 at 23:17 UTC |