develooper Front page | perl.perl6.users | Postings from August 2020

Re: Any other way to do this

Thread Previous
From:
Bruce Gray
Date:
August 31, 2020 18:28
Subject:
Re: Any other way to do this
Message ID:
07DC1B53-46F3-4599-917A-A9F30D2DE661@acm.org
my $is_a_number = / ^ \d+ [ '.' \d* ]? $ /;

my $sum = @*ARGS.grep($is_a_number).sum;

say $sum;

— 
Hope this helps,
Bruce Gray (Util of PerlMonks)

> On Aug 31, 2020, at 12:22 PM, William Michels via perl6-users <perl6-users@perl.org> wrote:
> 
> I think it looks very good, Radhakrishnan! Presumably you are happy
> with the sum 1195.7876?
> 
> ~$ raku -e 'for @*ARGS {.say if ($_.Int // 0) };' 0 100 200 300 apples
> 400oranges 2kilos 18.7876 500 grams14 10stars10 sun100moon 77
> 100
> 200
> 300
> 18.7876
> 500
> 77
> 
> I'm still mulling over whether or not the "!=== 0" is essential.  I
> have yet to mess-up the command line arguments sufficiently to require
> it, and throwing a zero onto the command line seems to be handled
> gracefully.
> 
> Anyone else want to chime in?
> 
> Best, Bill.
> 
> On Mon, Aug 31, 2020 at 8:49 AM Radhakrishnan Venkataraman
> <weorkay@gmail.com> wrote:
>> 
>> Please see the following script that checks for type and sums up only the numbers passed as arguments to the script in the command line.  I would be grateful if any improvement or furtherance to this script is offered.  Thank you.
>> 
>> #
>> # sums the numbers given in command line arguments and prints
>> #
>> my $sum = 0;
>> for @*ARGS
>> {
>> $sum += $_.Rat if $_.Int // 0 !=== 0;
>> }
>> say $sum;
>> 
>> #
>> # command line execution
>> # perl6 cla.p6 100 200 300 apples 400oranges 2kilos 18.7876 500 grams14 10stars10 sun100moon 77
>> #

Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About