in reply to Pattern match array

This would better be coded using a hash:
use strict; use warnings; my %prims =( "int" => 1, "char" => 1, "long" => 1, "double" => 1, "static" => 1 ); while(<>) { if($prims{$_}) { print "Found item $_\n"; } }
Update:
If you absolutely need to have the @prim array, then create the hash on-the-fly using map:
... my @prim = (("int","char","long","double","static"); my %prim = map { $_ => 1 } @prim; ...
Update2

After reading moritz's take on this, his seems to be what you're looking for.

I was somehow thinking that you were parsing chunks (ie. words) and then seeing if that word existed in your array/hash.

moritz is also spot-on mentioning that you're not handling the newlines at the ends of lines.


Your wish is my commandline.

Replies are listed 'Best First'.
Re^2: Pattern match array
by moritz (Cardinal) on May 07, 2008 at 15:16 UTC
    But it doesn't do the same thing. aennen searches for substrings, you search for exact matches.

    The fact that the lines aren't chomped means that you'll never get a match (unless on the last line, if it lacks a newline).

Re^2: Pattern match array
by aennen (Acolyte) on May 07, 2008 at 15:25 UTC
    Sorry should have expanded on input.
    Input is source code and I am trying to match
    the pattern in a string of data

    Example input date line

    int EB_Column::beginNPColumn(const bfpd_nc_t& i_rec, BF_COORDINATE_C_D(i_x))