require B; sub flags { my ($name, $test_ref) = @_; my $test_obj = B::svref_2object( $test_ref ); my $bits = sprintf "%o", $test_obj -> FLAGS; # my $bits = unpack 'B*', pack 'N', $test_obj -> FLAGS; print "$name: $bits\n"; } my $pad_str = "str"; my $pad_int = 1; $str = "str"; $int = 1; flags( "pad str", \ $pad_str ); flags( "pad int", \ $pad_int ); flags( "gbl str", \ $str ); flags( "gbl int", \ $int ); print "\n"; # Print some values I'm interested in seeing. use Config qw(config_vars); config_vars(qw(archname intsize longsize ptrsize doublesize byteorder d_longlong longlongsize d_longdbl longdblsize ivtype ivsize nvtype nvsize lseeksize alignbytes)); __DATA__ pad str: 401002404 pad int: 100202401 gbl str: 401000004 gbl int: 100200001 archname='MSWin32-x86-multi-thread'; intsize='4'; longsize='4'; ptrsize='4'; doublesize='8'; byteorder='1234'; d_longlong='undef'; longlongsize='8'; d_longdbl='define'; longdblsize='10'; ivtype='long'; ivsize='4'; nvtype='double'; nvsize='8'; lseeksize='4'; alignbytes='8';