Fellow monks,
I have a bit of a dillema. I have a need to take user input and use it as the regexp pattern in the search against some data. Here's an example code:
use warnings;
use strict;
print "Input regexp: \n";
my $user_input = <STDIN>;
my $string = "abcdef";
if ($string =~ /$user_input/x) {
print "$string - matches\n";
} else {
print "$string - no match found\n";
}
When you run this, and type in something valid like "a", or like ".", then you get a proper match. However, when you pass in some invalid regexp like "*a", then the code returns an error:
Quantifier follows nothing in regex; marked by <-- HERE in m/* <-- HERE a
I understand why this error happens, but I would like to trap it in a more user friendly way. Is there a method for ensuring that a regexp is valid before passing it to the m// operator?
Thank you as always!