This is a live mirror of the Perl 5 development currently hosted at
Add the Configure option to enable strict by default in perl programs.
authorH.Merijn Brand <>
Tue, 22 Sep 2020 12:26:22 +0000 (14:26 +0200)
committerH.Merijn Brand <>
Tue, 22 Sep 2020 12:26:22 +0000 (14:26 +0200)
Do not set strict by default on -e or -E

This is a development only feature to allow us to clean up blead.

./Configure -Dusedevel -des -Dusedefaultstrict

U/perl/usedefaultstrict.U [new file with mode: 0644]

diff --git a/U/perl/usedefaultstrict.U b/U/perl/usedefaultstrict.U
new file mode 100644 (file)
index 0000000..0f813cc
--- /dev/null
@@ -0,0 +1,45 @@
+?RCS: You may distribute under the terms of either the GNU General Public
+?RCS: License or the Artistic License, as specified in the README file.
+?MAKE:usedefaultstrict: Setvar Myread
+?MAKE: -pick add $@ %<
+?LINT:set usedefaultstrict
+?S:    This setting provides a mechanism for perl developers to enable
+?S:    strict by default. These defaults do not apply when perl is run
+?S:    via -e or -E.
+?C:    This symbol, if defined, enables additional defaults.
+?C:    At this time it only enables implicit strict by default.
+?H:#$usedefaultstrict USE_STRICT_BY_DEFAULT    /* use strict by default */
+: Ask about strict by default.
+case "$usedefaultstrict" in
+    $define|true|[Yy]*)
+       dflt="y"
+       ;;
+    *)
+       dflt="n"
+       ;;
+    esac
+cat <<EOM
+EXPERIMENTAL: Perl can now be built with strict on by default when not
+invoked with -e or -E. This is a diagnostic tool for development.
+Unless you are familiar with this feature, you should probably answer 'no'.
+rp='Would you like to build perl with strict enabled by default?'
+. ./myread
+case "$ans" in
+y|Y) val="$define" ;;
+*)   val="$undef"  ;;
+set usedefaultstrict
+eval $setvar