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