diff --git a/perl.h b/perl.h index 0dbfd7cc40c5..7e9ee21e4faa 100644 --- a/perl.h +++ b/perl.h @@ -7098,14 +7098,16 @@ cannot have changed since the precalculation. LC_NUMERIC_UNLOCK; \ } STMT_END -/* The next two macros set unconditionally. These should be rarely used, and - * only after being sure that this is what is needed */ +/* The next two macros should be rarely used, and only after being sure that + * this is what is needed */ # define SET_NUMERIC_STANDARD() \ STMT_START { \ DEBUG_Lv(PerlIO_printf(Perl_debug_log, \ "%s: %d: lc_numeric standard=%d\n", \ __FILE__, __LINE__, PL_numeric_standard)); \ - Perl_set_numeric_standard(aTHX); \ + if (NOT_IN_NUMERIC_STANDARD_) { \ + Perl_set_numeric_standard(aTHX); \ + } \ DEBUG_Lv(PerlIO_printf(Perl_debug_log, \ "%s: %d: lc_numeric standard=%d\n", \ __FILE__, __LINE__, PL_numeric_standard)); \