>perl -e 'use 5.018; my $x=qr/a[bc]d/; say("|$_| matches |$x|: ",$_=~/
+$x/ ? "yes" : "no") for ( "abd","acd","abcd","a[bc]d" )'
|abd| matches |(?^u:a[bc]d)|: yes
|acd| matches |(?^u:a[bc]d)|: yes
|abcd| matches |(?^u:a[bc]d)|: no
|a[bc]d| matches |(?^u:a[bc]d)|: no
>
Your script matches $line against zero or more whitespace characters, followed by one of the characters "()Cacdegnorsty. The C in $line matches this condition.
I can freely change the order of characters and remove duplicates in qr/[]/ without changing the script output:
#!/usr/bin/perl -w
use 5.018;
# 1126143
my $line = ' [Category("notestrecord")]';
my $pattern = qr/["()Cacdegnorsty]/;
if($line =~ /\s*$pattern/)
{
print "Matched |$pattern| in |$line|"; # vbars to show spaces (&
+ lack of spaces)
} else {
print "No match!";
}
=head OUTPUT:
Matched |(?^u:[Category("notestrecord")])| in | [Category("note
+strecord")]|
=cut
>perl 1126159-modified.pl
Matched |(?^u:["()Cacdegnorsty])| in | [Category("notestrecord"
+)]|
>
Alexander
--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
|