--- Leon <[EMAIL PROTECTED]> wrote:
> Try this;
> my $total = "4536233";
> $total =~s/(.+)(\d{2})/$1.$2/;
> print $total;

Ooh... I'd be careful of a regex like that.

$ perl -e '
> $foo = "I told you 100 times not to do that :)";
> $foo =~ s/(.+)(\d{2})/$1.$2/;
> print $foo'
I told you 1.00 times not to do that :)

You're slurping up everything in there!  Also, if you *know* that you only have 
digits, you can
get mysterious failures.  I'd use a regex like this:

    $foo =~ s/^(\d*)\d{2}$/$1./;

However, even then, a regex is overkill.  sprintf seems like a better choice:

$ perl -e '
> my $num = "12345";
> $num /= 100;
> printf "%0.2f", $num'
123.45

Cheers,
Curtis "Ovid" Poe


=====
"Ovid" on http://www.perlmonks.org/
Someone asked me how to count to 10 in Perl:
push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//;
shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A

__________________________________________________
Do You Yahoo!?
Great stuff seeking new owners in Yahoo! Auctions! 
http://auctions.yahoo.com

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to