Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: Looking for a function that returns status of a scalar's numeric flags

by Haarg (Priest)
on Mar 22, 2020 at 09:29 UTC ( [id://11114540]=note: print w/replies, xml ) Need Help??


in reply to Looking for a function that returns status of a scalar's numeric flags

I have a test for this exact thing in Sub::Quote. It uses the B module to check the flags. Rather than having individual functions for each flag, or generating a data structure, my test just generates a string of what flags are set, since that was simplest and gave the nicest debugging results.

From quotify.t:

my %flags; { no strict 'refs'; for my $flag (qw( SVs_TEMP SVs_OBJECT SVs_GMG SVs_SMG SVs_RMG SVf_IOK SVf_NOK SVf_POK SVf_OOK SVf_FAKE SVf_READONLY SVf_PROTECT SVf_BREAK SVp_IOK SVp_NOK SVp_POK )) { if (defined &{'B::'.$flag}) { $flags{$flag} = &{'B::'.$flag}; } } } sub flags { my $flags = B::svref_2object(\($_[0]))->FLAGS; join ' ', sort grep $flags & $flags{$_}, keys %flags; }
then later:
is flags($copy), flags($value), "$value_name: quotify doesn't modify input";

Replies are listed 'Best First'.
Re^2: Looking for a function that returns status of a scalar's numeric flags
by syphilis (Archbishop) on Mar 23, 2020 at 04:04 UTC
    I have a test for this exact thing in Sub::Quote.

    Also rather nice work !
    And a handy reference.

    I don't see any "IsUV" flag there.
    Why is that ?

    Cheers,
    Rob

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11114540]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (None)
    As of 2024-04-19 00:22 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      No recent polls found