NAME

  Strict::Perl - Perl module to restrict old/unsafe constructs

SYNOPSIS

  use Strict::Perl 2017.03; # must version, must match

DESCRIPTION

  Strict::Perl provides a restricted scripting environment excluding old/unsafe
  constructs, on both modern Perl and traditional Perl.

  Strict::Perl works in concert with Modern::Open and Fake::Our if those are used
  in your script.

  Version specify is required when use Strict::Perl, like;

    use Strict::Perl 2017.03;

  It's die if specified version doesn't match Strict::Perl's version.

  On Perl 5.010001 or later, Strict::Perl works as;

    use strict;
    use warnings qw(FATAL all);
    use Fatal # by compatible routine in Strict::Perl
    qw(
        seek sysseek
        dbmclose dbmopen
        binmode close chmod chown fcntl flock ioctl open sysopen truncate
        chdir closedir opendir link mkdir readlink rename rmdir symlink
        pipe
        msgctl msgget msgrcv msgsnd
        semctl semget semop
        shmctl shmget shmread
        accept bind connect getsockopt listen recv send setsockopt shutdown socketpair
        fork
    );
    use autodie qw(
        read sysread syswrite
        fileno
    );

  Prohibited Keywords, Special Variables, and Operator are;

    goto  redo  until  foreach
    format  write  formline
    msgctl  msgget  msgrcv  msgsnd
    semctl  semget  semop
    shmctl  shmget  shmread  shmwrite
    given  when

    $ARRAY_BASE                        $[
    $OFMT                              $#
                                       @F
                                       $^H
    $OUTPUT_FIELD_SEPARATOR   $OFS     $,
    $OUTPUT_RECORD_SEPARATOR  $ORS     $\
    $LIST_SEPARATOR                    $"
    $SUBSCRIPT_SEPARATOR      $SUBSEP  $;
    $MULTILINE_MATCHING                $*
    $PREMATCH                          $`
    $MATCH                             $&
    $POSTMATCH                         $'
    $FORMAT_PAGE_NUMBER                $%
    $FORMAT_LINES_PER_PAGE             $=
    $FORMAT_LINES_LEFT                 $-
    $FORMAT_NAME                       $~
    $FORMAT_TOP_NAME                   $^
    $FORMAT_LINE_BREAK_CHARACTERS      $:
    $FORMAT_FORMFEED                   $^L
    $ACCUMULATOR                       $^A

    ~~ (smartmatch)

  Prohibited modules in script are;

    Thread  threads  encoding  Switch

  Must Keyword in your script is;

    VERSION

  Please see POD document for other Perl version and more information.

INSTALLATION

  1. Copy Strict/Perl.pm to @INC directory.

SEE ALSO

  ina - CPAN
  http://search.cpan.org/~ina/

  BackPAN - A Complete History of CPAN
  http://backpan.perl.org/authors/id/I/IN/INA/