Perl_warner( aTHX_ WARN_SYNTAX, "Stringified reference\n" ); /* or you could make references REALLY strict ;-) */ if ( PL_hints & HINT_STRICT_REFS ) Perl_croak( aTHX_ "Stringification of reference disallowed\n" ); #### /* in perl.h with the rest of the HINT_ defines */ + #define HINT_STRICT_STRINGIFY 0x00000004 /* in sv.c as noted by xmath */ + if ( PL_Hints & HINT_STRICT_STRINGIFY ) + Perl_croak(aTHX_ "Stringification of reference disallowed"); # in strict.pm my %bitmask = ( + stringify => 0x00000004, refs => 0x00000002, subs => 0x00000200, vars => 0x00000400 ); sub bits { my $bits = 0; foreach my $s (@_){ $bits |= $bitmask{$s} || 0; }; $bits; } sub import { shift; - $^H |= bits(@_ ? @_ : qw(refs subs vars)); + $^H |= bits(@_ ? @_ : qw(refs subs vars stringify)); } sub unimport { shift; - $^H &= ~ bits(@_ ? @_ : qw(refs subs vars)); + $^H &= ~ bits(@_ ? @_ : qw(refs subs vars stringify)); }