http://qs321.pair.com?node_id=161997


in reply to Identifying if a variable is the product of a qr//

The following code throws some light:
perl -e '$qr = "[A-Z]o[A-Z]"; print "[".("WoW" =~ $qr)."][".("wow" =~ +$qr)."]\n";' # prints [1][]


Any string in perl really can be a regular expression. The binding operator allows you to use just about anything that stringifies as a regular expression. That being said, there really isn't anything magical about the Regexp class except that its objects are able to stringify with the appropriate regexp. That basically means, that unless the object is blessed into the Regexp class, there really is no way to know if the object is intended for Regexp use or not. And even if it is not - that doesn't mean that you couldn't use it as one anyway.

I doubt that there is really anything magic going on under the covers that would act specially upon objects formerly blessed as Regexp.

my @a=qw(random brilliant braindead); print $a[rand(@a)];