use strict; my $matchtext = shift || die &usage; if ( ! is_valid_pattern( $matchtext ) ) { die "'$matchtext' is not a valid regular expression."; } my $page = "myfilename.html"; open PAGE, "< $page" or die "Cannot open $page for reading: $!"; while () { print "There was an instance of $matchtext on line $.:\n\t$_\n" if /$matchtext/; } close PAGE; sub usage { print "Usage: filematch.pl text_to_match"; } sub is_valid_pattern { my $pattern = shift; return eval { "" =~ /$pattern/; 1 } || 0; }