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; }