[ic] Trying to add products using non-numeric quantities...

Steffen Dettmer interchange-users@lists.akopia.com
Fri Jun 29 06:26:00 2001


* Jeff Carnahan wrote on Thu, Jun 28, 2001 at 09:51 -0700:
> } You want this w/o the if? I think you can write:
> }
> } @quantities = map { s/(^=)?\D/$1/g; $_ }
> }
> } or better:
> }
> } @quantities = map { s/[^\d=]//g; $_ }
> }
> } or maybe faster like:
> }
> } #delete unknown (==not 0-9,=) chars and map something(?):
> } @quantities = map { tr/0-9=//cd; $_ }
> }
> 
> The problem was, if the first character is an equals sign,
> ignore it and strip all non-digits past that FIRST equals sign.
> ie: "=1=4" should be "=14"

You mean, ignore any "=" except the first?

> Of course, that first equals sign is optional, and may not
> occur at any other location, so "=1a1" should be "=11", "1a=14"
> should be "114", etc.

I see, not trivial... Let's try:

"m/^(=)?/, tr/0-9//cd, $_ = $1 . $_" as expression

in	out
=1=4    =14
1=4     14
=1a1    =11
1a=14   114
=1a=14  =114
=1=2=   =12

Tested with:

perl -e '$_ = $ARGV[0];
	m/^(=)?/, tr/0-9//cd, $_ = $1 . $_;
        print "$_\n";' =1=2=

(for you copy and paste test)

Well, very similar to your thing, maybe not so nice to read,
maybe a little faster but I think nearly the same :) Sorry, but I
missed the requirements first :)


oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.