SPUG: auto-increment mixed alpha-numeric

Richard Wood wildwood_players at yahoo.com
Thu Mar 13 16:48:11 CST 2003


Thanks for the ideas, 

glad to see I wasn't missing something obvious.

Rich Wood

--- Richard Wood <wildwood_players at yahoo.com> wrote:
> Here is what I am using in the meantime while
> waiting
> for an elegant solution.
> 
> #!/usr/bin/perl -w
> @strings = qw(AAA AZ8 A8A A98 118 18A 1A8 8AA);
> foreach $str (@strings) {
>     for ($i=0;$i<3;$i++) {
> 	print "$str\t";
> 	myinc();
>     }
>     print "\n";
> }
> sub myinc {
>     if ($str =~
> /\d{3}|[A-Z]{3}|[A-Z]{1}\d{2}|[A-Z]{2}\d{1}/) {
> 	$str++;
>     }
>     else {
> 	$str =~ /(.)(.)(.)/;
> 	$a = $1;
> 	$b = $2;
> 	$c = $3;
> 	$c++;
> 	if (($c ne '10') && ($c ne 'AA')) {
> 	    $str = "$a$b$c";
> 	}
> 	else {
> 	    $c =~ s/.(.)/$1/;
> 	    $b++;
> 	    if (($b ne '10') && ($b ne 'AA')) {
> 		$str = "$a$b$c";
> 	    }
> 	    else {
> 		$b =~ s/.(.)/$1/;
> 		$a++;
> 		$str = "$a$b$c";
> 	    }
> 	}
>     }
> }
> 
> Rich Wood
> 
> --- Richard Wood <wildwood_players at yahoo.com> wrote:
> > I have the need/desire to auto-increment a three
> > character scalar that may contain: all numerics,
> all
> > alphas, or mixed alpha-numeric.
> > 
> > auto-increment works fine for all alpha and all
> > numeric and in some cases with a mix of
> > alpha-numerics
> > but not when a numeric precedes an alpha.  In
> those
> > cases I get two types of results.  (e.g. '1AA'
> > becomes
> > 2, 'A1A' becomes 1, then 2).
> > 
> > Anyone have a simple solution to this?  I will
> > continue to look around and try things but I
> thought
> > I
> > would ask the community before any more time
> slipped
> > away.
> > 
> > Here is my test program and results:
> > 
> > #!/usr/bin/perl -w
> > @strings = qw(AAA AA8 A8A A98 118 18A 1A8 8AA);
> > foreach $str (@strings) {
> >     for ($i=0;$i<3;$i++) {
> > 	print "$str\t";
> > 	$str++;
> >     }
> >     print "\n";
> > }
> > __END__
> > AAA     AAB     AAC
> > AA8     AA9     AB0
> > A8A     1       2
> > A98     A99     B00
> > 118     119     120
> > 18A     19      20
> > 1A8     2       3
> > 8AA     9       10
> > 
> > Regards,
> > 
> > Rich Wood
> > 
> > =====
> > Richard O. Wood
> > Wildwood IT Consultants, Inc.
> > wildwood_players at yahoo.com
> > 425.281.1914 mobile
> > 206.544.9885 desk
> > 
> > __________________________________________________
> > Do you Yahoo!?
> > Yahoo! Web Hosting - establish your business
> online
> > http://webhosting.yahoo.com
> >
>
_____________________________________________________________
> > Seattle Perl Users Group Mailing List  
> > POST TO: spug-list at mail.pm.org
> > ACCOUNT CONFIG:
> > http://mail.pm.org/mailman/listinfo/spug-list
> > MEETINGS: 3rd Tuesdays, U-District, Seattle WA
> > WEB PAGE: www.seattleperl.org
> > 
> 
> 
> =====
> Richard O. Wood
> Wildwood IT Consultants, Inc.
> wildwood_players at yahoo.com
> 425.281.1914 mobile
> 206.544.9885 desk
> 
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Web Hosting - establish your business online
> http://webhosting.yahoo.com
>
_____________________________________________________________
> Seattle Perl Users Group Mailing List  
> POST TO: spug-list at mail.pm.org
> ACCOUNT CONFIG:
> http://mail.pm.org/mailman/listinfo/spug-list
> MEETINGS: 3rd Tuesdays, U-District, Seattle WA
> WEB PAGE: www.seattleperl.org
> 


=====
Richard O. Wood
Wildwood IT Consultants, Inc.
wildwood_players at yahoo.com
425.281.1914 mobile
206.544.9885 desk

__________________________________________________
Do you Yahoo!?
Yahoo! Web Hosting - establish your business online
http://webhosting.yahoo.com



More information about the spug-list mailing list