# but of course
BROKEN_FORK => ($^O eq 'MSWin32') ? 1 : 0,
+ BROKEN_GOTO => ($] < '5.008003') ? 1 : 0,
+
HAS_ITHREADS => $Config{useithreads} ? 1 : 0,
# ::Runmode would only be loaded by DBICTest, which in turn implies t/
# Carp::Skip to the rescue soon
use DBIx::Class::Carp '^DBIx::Class|^DBICTest';
+use B ();
use Carp 'croak';
+use Storable 'nfreeze';
use Scalar::Util qw(weaken blessed reftype);
use List::Util qw(first);
+# DO NOT edit away without talking to riba first, he will just put it back
+# BEGIN pre-Moo2 import block
+BEGIN {
+ my $initial_fatal_bits = (${^WARNING_BITS}||'') & $warnings::DeadBits{all};
+
+ local $ENV{PERL_STRICTURES_EXTRA} = 0;
+ # load all of these now, so that lazy-loading does not escape
+ # the current PERL_STRICTURES_EXTRA setting
+ require Sub::Quote;
+ require Sub::Defer;
+
+ Sub::Quote->import('quote_sub');
+ ${^WARNING_BITS} &= ( $initial_fatal_bits | ~ $warnings::DeadBits{all} );
+}
+sub qsub ($) { goto "e_sub } # no point depping on new Moo just for this
+# END pre-Moo2 import block
+
use base 'Exporter';
our @EXPORT_OK = qw(
sigwarn_silencer modver_gt_or_eq
fail_on_internal_wantarray fail_on_internal_call
refdesc refcount hrefaddr is_exception
- perlstring
+ quote_sub qsub perlstring serialize
UNRESOLVABLE_CONDITION
);
sub refcount ($) {
croak "Expecting a reference" if ! length ref $_[0];
- require B;
# No tempvars - must operate on $_[0], otherwise the pad
# will count as an extra ref
B::svref_2object($_[0])->REFCNT;
}
+sub serialize ($) {
+ local $Storable::canonical = 1;
+ nfreeze($_[0]);
+}
+
sub is_exception ($) {
my $e = $_[0];