using array elements for pattern matching in perl

perl, regex

Solution

It should work adding parentheses, although I hope that the content of the array hasn't special characters, because you will need to use `quotemeta` function to escape them.

my $temp;
($temp  = $line) =~ s/somestring[^\n]*$_// for @myarray;

Problem

A newbie to Perl and regexes without saying, I am trying to use elements in an array in a perl regex. Here is the snippet ``` my $temp = $line =~ s/somestring[^\n]*$_// for @myarray; ``` If I hard code the string instead of $_ it works fine. Also $_ prints the string fine in isolation. So what am I doing wrong? Even the expanded version of using a for loop doesn't yield a match. P.S Just to clarify the array has just one element and I know it matches the line.

Original source