optimization#

Return a hashref of the optimiser’s compile-time findings for a compiled pattern.

Intended for writing tests that pin optimiser behaviour, not for application logic. The set of keys and the meaning of their values are not a stable API - they change as the optimiser changes, even between minor perl releases.

Σύνοψη#

use re 'optimization';
my $info = optimization(qr/^\d+foo/);
print $info->{anchored};            # 'foo'
print $info->{'anchor SBOL'};       # 1
print $info->{minlen};              # minimum match length

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

A hashref, or undef if the argument is not a compiled pattern or its engine is unknown. Keys include minlen, minlenret, gofs, anchored, anchored utf8, anchored min offset, anchored max offset, anchored end shift, floating, floating utf8, floating min offset, floating max offset, floating end shift, checking ("anchored", "floating", or "none"), the booleans noscan, isall, anchor SBOL, anchor MBOL, anchor GPOS, skip, implicit, and stclass.

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

  • Argument is not a qr// - returns undef.

  • Pattern has no extracted substrings - the substring-related keys are undef or 0 and checking is "none".

Διαφορές από το upstream#

  • stclass is always undef. Upstream returns a textual rendering of the start class produced by my_regprop, which is compiled only with PERL_EXT_RE_DEBUG and is not available in this build.