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-us...@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 > <weor...@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 >> #