Yonghua Peng wrote:
> 
> --- On Tue, 24/11/09, Shawn H Corey <shawnhco...@gmail.com> wrote:
> 
>> From: Shawn H Corey <shawnhco...@gmail.com>
>> Subject: Re: 答复: Regex to get last 3 digits of a number.
>> To: "gaochong" <zjgaoch...@gmail.com>
>> Cc: "'John W. Krahn'" <jwkr...@shaw.ca>, "'Perl Beginners'" 
>> <beginners@perl.org>
>> Received: Tuesday, 24 November, 2009, 8:26 PM
>> gaochong wrote:
>>> But I think substr is better .
>>>
>>> my $str="0000000000000111";
>>> my $r=substr ($str,-3);
>> TimTowTdi (there is more than one way to do it):
>>
>> my $n = "0000000000000111";
>> my $last_3_chars = join('',(split(//,$n))[-3..-1]);
> 
> The worst way, :-)
> split is much slower than others.

Worst?  Hardly.  I'm just getting warmed up.

my $n = "0000000000000111";

my $last_3_digits = sprintf '%03d', $n - int( $n / 1_000 ) * 1_000;
print "$last_3_digits\n";

my $fluff = length( $n ) - 3;
my $last_3_chars = (unpack "a$fluff a*", $n)[-1];
print "$last_3_chars\n";


-- 
Just my 0.00000002 million dollars worth,
  Shawn

Programming is as much about organization and communication
as it is about coding.

I like Perl; it's the only language where you can bless your
thingy.

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to