use List::Util 'first'; sub insert_after_first { my ($arr, $element, $insert) = @_; if (my $first = first {$arr->[$_] eq $element} 0..$#$arr) { splice @$arr, $first+1, 0, $insert; return 1; } }