#!/usr/bin/perl -w use strict; use warnings; my @folders= ("data,power"); my @array=("./data.h","./power.h"); my $folder; my %files_content; my %grep_lines; foreach $file (@array) { open my $fh, $arr or die $!; $files_content{ $file } = <$fh>; close $fh; } foreach $folder (@folders) { foreach $filename (keys %files_content) { push @{ $grep_lines{ $filename } }, grep (/$folder/i, @{ $files_content{ $filename } }); } }