#!/usr/bin/perl -w sub member { my $target = shift or die "No target in member/2 "; for (0..$#_) { return $_ if $_[$_] eq $target; } return undef ; } @arr = qw/DRAM1.new_quad_stack.3 DRAM1.new_quad_stack.5 /; open (IN , "$file"); while () { next unless /@arr[member($_,@arr)]/ ; while () { last if /End/ ; print $_ ; } } close IN ;