in reply to Re: Substitute array value in regular expression
in thread Substitute array value in regular expression

Hi,
my @final_array=qw/test1 test2 fred/;
How can I define array in this way when I making the array dynamically .
I search any "ps" file and then feeds the array from the search performed on the "ps" file.
So the search pattern is based on the array value and i can't prefix it using qw.
So how can I declare the pattern now using qw dynamically.
Thanks for ur previous file .

Replies are listed 'Best First'.
Re: Re: Re: Substitute array value in regular expression
by Roger (Parson) on Dec 30, 2003 at 13:19 UTC
    Looks like you need to read the perlop documentation on CPAN and understand the meaning of qw (Quoted Words). What qw does is to build a list, not to construct search patterns.

    my @array = qw/ element1 element2 element3 /;
    is equivalent to
    my @array = (); push @array, 'element1'; push @array, 'element2'; push @array, 'element3';
    Given that your @final_array is already setup earlier, all you need to do is to build the combined search pattern with join:
    my $pattern = join '|', @final_array;
    Why do I want to join the patterns with '|'? Because effectively I want to build a regular expression like below:
    s/pattern1|pattern2|pattern3/replace/g; # which is equivalent to my $patterns = "pattern1|pattern2|pattern3"; s/$patterns/replace/g;