use File::Find; $DIRECTORY = "/Users/data"; find(\&edits, $DIRECTORY); sub edits() { if ( -f and /.txt$/ ) { $TEXT_FILE = $_; open MATCHING_FILE, $TEXT_FILE; @all_lines = ; close MATCHING_FILE; for $each_line ( @all_lines ) { if ( $each_line =~ /[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}|password|(ssn=)/i ) { @results = $each_line; %hashTemp = map { @results => 1 } @results; %array_out = sort keys %hashTemp; print @array_out; } } } }