Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: cool way of manipulating array elements

by davido (Cardinal)
on Aug 30, 2011 at 09:25 UTC ( [id://923155]=note: print w/replies, xml ) Need Help??


in reply to cool way of manipulating array elements

One solution is to grep to find the indices of the elements you wish to multiply, and then feed those indices to map for it to act upon. Here is a function that takes an array ref as the first parameter, and a multiplier as the second parameter. The return value is an array reference to a new array containing the modified values, only for those elements in the original array that "look like numbers."

use strict; use warnings; use Scalar::Util qw{ looks_like_number }; use v5.12; my @array = ( '1', '2', '45', '65', 'what is this' ); my @by2 = @{ multiply( \@array, 2 ) }; say join ', ', @by2; sub multiply { my( $aref, $multiplier ) = @_; return [ map { $aref->[$_] * $multiplier } grep { looks_like_number( $aref->[$_] ) } 0 .. $#{$aref} ]; }

Dave

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://923155]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (8)
As of 2024-04-18 13:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found