is_regexp#

Return true if the argument is a compiled regular expression.

Unlike ref or UNIVERSAL::isa, this function sees through blessing and overloading - it looks at the value’s internal type tag, so a qr// blessed into another class, or an object with a stringification overload, is still correctly recognised.

Σύνοψη#

use re 'is_regexp';
if (is_regexp($value)) { ... }

Τι επιστρέφεται#

The same true / false values Perl uses everywhere else: &PL_sv_yes (the canonical true) or &PL_sv_no (the canonical false-but-defined).

Παραδείγματα#

is_regexp(qr/foo/);             # true
is_regexp("not a regex");       # false
is_regexp(\"not a regex");      # false - scalar ref, not a qr//
my $blessed = bless qr/foo/, 'My::RE';
is_regexp($blessed);            # true - sees through the bless

Οριακές περιπτώσεις#

  • Called with zero or more than one argument - croaks with Usage: re::is_regexp(sv).

  • Non-reference scalars - always false.

  • References that aren’t qr// (arrayref, hashref, coderef, scalar ref) - always false.