I had a few minutes to take a crack, and the following is what I came up with. I made it about half-way through. It is tested, but not well vetted... ie. it runs, it's much safer than what you have, and it shows a bit cleaner of a way to display things (you don't need printf() in Perl in most cases as variables interpolate within double-quotes).
use warnings; use strict; die "need arg!\n" if ! @ARGV; chomp (my $match = $ARGV[0]); print "match: $match\n"; my ($prefix, $format, $ext) = $match =~ /([\w]+)(%[0-9]+d)\.([\w]+)/i or die "nope, can't dig up stuff\n"; print "prefix: $prefix\n" . "format: $format\n" . "ext: $ext\n\n"; my ($count) = $format =~ /%([0-9]+)d/ or die "can't fetch format...\n"; print "count: $count\n";
Output:
match: Img%04d.png prefix: Img format: %04d ext: png count: 04
I am literally gearing up to head out of the city to photograph Aurora Borealis (as the Kp index is extremely high), so the other Monks can help out with the rest, and correct me where I've been hasty ;)
In reply to Re: How can I use printf FORMAT strings for (Win32) shell globs?
by stevieb
in thread How can I use printf FORMAT strings for (Win32) shell globs?
by ozboomer
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |