You are trying to find '\w+\-\$\.\%' pattern with (\w+\-\$\.\%) group and it does not exist so $1 is undefined and u get an error. Try this.
my $string="{'totalResultsCount':71-24,'securityList':[{'cusip':'91%27 +9-6.H:Y8','issueDate':'2016-06-02T00:00:00','securityType':'Bill'}"; # Patterns # original (\w+\-\$\.\%) # matach any pattern with these limits ([\w\-\$\.\%\:]+) # anything but this ' ([^\']+) # exact pattern (\d{2}\%\d{3}\-\d\.[A-Z]\:[A-Z]\d) $string =~ /'cusip':'(\d{2}\%\d{3}\-\d\.[A-Z]\:[A-Z]\d)'/; if (defined $1) { print " first is : $1 \n\n"; } else { print " first is not defined\n\n"; }
Updated: added some regex in code.
In reply to Re: Regular Expression on special character and alphanumeric values
by $h4X4_|=73}{
in thread Regular Expression on special character and alphanumeric values
by perlmad
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |