The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Devel::MAT::Tool::Find - list SVs matching given criteria

DESCRIPTION

This Devel::MAT tool provides a command to search for SVs matching given criteria.

COMMANDS

find

pmat> find io
IO()=IO::File at 0x55a7e4d88760: ifileno=1 ofileno=1
...

Prints a list of all the SVs that match the given filter criteria.

Takes the following named options:

--count, -C

Just count the matching SVs and print the total

FILTERS

num

pmat> find num
SCALAR(UV) at 0x555555a1e9c0: 5
SCALAR(UV) at 0x555555c4f1b0: 2
SCALAR(UV) at 0x555555aa0dc0: 18446744073709551615

Prints a list of all the scalar SVs that have a numerical value, optionally filtering for only an exact value.

Takes the following named options:

--nv, --iv, --uv

Find only numerical SVs of the given types. If no options present, any numerical SV will be found.

pv

pmat> find pv "boot"
SCALAR(PV) at 0x556e4737d968: "boot_Devel::MAT::Dumper"
SCALAR(PV) at 0x556e4733a160: "boot_Cwd"
...

Prints a list of all the scalar SVs that have a PV (string value) matching the supplied pattern. Normally, the pattern is interpreted as a substring match, but the --eq and --regexp options can alter this.

Takes the following named options:

--eq

Interpret the pattern as a full string equality match, instead of substring.

--regexp, -r

Interpret the pattern as a regular expression, instead of a literal substring.

--ignorecase, -i

Match case-insensitively, for any of substring, equality or regexp match.

io

pmat> find io
IO()=IO::File at 0x55a7e4d88760: ifileno=1 ofileno=1
...

pmat> find io -f 2
IO()=IO::File at 0x55582b87f430: ifileno=2 ofileno=2

Searches for IO handles

Takes the following named options:

--fileno, -f INT

Match only IO handles associated with the given filenumber.

blessed

pmat> find blessed Config
HASH(26)=Config at 0x55bd56c28930

Searches for SVs blessed into the given package name.

lexical

pmat> find lexical $x
UNDEF() at 0x56426e97c8b0: $x at depth 1 of CODE(PP) at 0x56426e97c5e0
...

Searches for SVs that are lexical variables of the given name.

struct

pmat> find struct Module::Name/Type
C_STRUCT(Module::Name/Type) at 0x55e0c3017bf0: Module::Name/Type
...

Searches for SVs that are C structures of the given type name.

magic

AUTHOR

Paul Evans <leonerd@leonerd.org.uk>