• TUX



Perl 5 version 18.1 documentation
Recently read



perlexperiment - A listing of experimental features in Perl


This document lists the current and past experimental features in the perl core. Although all of these are documented with their appropriate topics, this succinct listing gives you an overview and basic facts about their status.

So far we've merely tried to find and list the experimental features and infer their inception, versions, etc. There's a lot of speculation here.

Current experiments

  • -Dusemultiplicity -Duseithreads

    Introduced in Perl 5.6.0

  • Long Doubles Still Don't Work In Solaris

    Introduced in Perl 5.7.0

  • our can now have an experimental optional attribute unique

    Introduced in Perl 5.8.0

    Deprecated in Perl 5.10.0

  • Linux abstract Unix domain sockets

    Introduced in Perl 5.9.2

    See also Socket

  • Pod::HTML2Pod
  • Pod::PXML
  • The <:pop> IO pseudolayer

    See also perlrun

  • The <:win32> IO pseudolayer

    See also perlrun


    See also perldsc

  • internal functions with M flag

    See also perlguts

  • lex_start API

    Introduced in Perl 5.13.7

  • internal API for %^H

    Introduced in Perl 5.13.7

    See also cophh_ in perlapi.

  • alloccopstash

    Introduced in Perl 5.18.0

  • av_create_and_push
  • av_create_and_unshift_one
  • av_create_and_unshift_one
  • cop_store_label

    Introduced in Perl 5.16.0

  • PL_keyword_plugin
  • gv_fetchmethod_*_flags

    Introduced in Perl 5.16.0

  • hv_iternext_flags
  • lex_bufutf8
  • lex_discard_to
  • lex_grow_linestr
  • lex_next_chunk
  • lex_peek_unichar
  • lex_read_space
  • lex_read_to
  • lex_read_unichar
  • lex_stuff_pv
  • lex_stuff_pvn
  • lex_stuff_pvs
  • lex_stuff_sv
  • lex_unstuff
  • op_scope
  • op_lvalue
  • parse_fullstmt
  • parse_stmtseq
  • PL_parser->bufend
  • PL_parser->bufptr
  • PL_parser->linestart
  • PL_parser->linestr
  • Perl_signbit
  • pad_findmy
  • sv_utf8_decode
  • sv_utf8_downgrade
  • bytes_from_utf8
  • bytes_to_utf8
  • utf8_to_bytes
  • Lvalue subroutines

    Introduced in Perl 5.6.0

    See also perlsub

  • There is an installhtml target in the Makefile.
  • Unicode in Perl on EBCDIC
  • (?{code})

    See also perlre

  • (??{ code })

    See also perlre

  • Smart match (~~ )

    Introduced in Perl 5.10.0

    Modified in Perl 5.10.1, 5.12.0

  • Lexical $_

    Introduced in Perl 5.10.0

  • Backtracking control verbs


    Introduced in: Perl 5.10

    See also: Special Backtracking Control Verbs in perlre

  • Code expressions, conditional expressions, and independent expressions in regexes
  • gv_try_downgrade

    See also perlintern

  • Experimental Support for Sun Studio Compilers for Linux OS

    See also perllinux

  • Pluggable keywords

    See PL_keyword_plugin in perlapi for the mechanism.

    Introduced in: Perl 5.11.2

  • Array and hash container functions accept references

    Introduced in Perl 5.14.0

  • Lexical subroutines

    Introduced in: Perl 5.18

    See also: Lexical Subroutines in perlsub

  • Regular Expression Set Operations

    Introduced in: Perl 5.18

    See also: Extended Bracketed Character Classes in perlrecharclass

Accepted features

These features were so wildly successful and played so well with others that we decided to remove their experimental status and admit them as full, stable features in the world of Perl, lavishing all the benefits and luxuries thereof. They are also awarded +5 Stability and +3 Charisma.

  • The \N regex character class

    The \N character class, not to be confused with the named character sequence \N{NAME} , denotes any non-newline character in a regular expression.

    Introduced in: Perl 5.12

  • fork() emulation

    Introduced in Perl 5.6.1

    See also perlfork

  • DB module

    Introduced in Perl 5.6.0

    See also perldebug, perldebtut

  • Weak references

    Introduced in Perl 5.6.0

  • Internal file glob

    Introduced in Perl 5.6.0

  • die accepts a reference

    Introduced in Perl 5.005

  • 64-bit support

    Introduced in Perl 5.005

Removed features

These features are no longer considered experimental and their functionality has disappeared. It's your own fault if you wrote production programs using these features after we explicitly told you not to (see perlpolicy).

  • legacy

    The experimental legacy pragma was swallowed by the feature pragma.

    Introduced in: 5.11.2

    Removed in: 5.11.3

  • Assertions

    The -A command line switch

    Introduced in Perl 5.9.0

    Removed in Perl 5.9.5

  • Test::Harness::Straps

    Moved from Perl 5.10.1 to CPAN

  • GetOpt::Long Options can now take multiple values at once (experimental)

    Getopt::Long upgraded to version 2.35

    Removed in Perl 5.8.8

  • The pseudo-hash data type

    Introduced in Perl 5.6.0

    Removed in Perl 5.9.0

  • 5.005-style threading

    Introduced in Perl 5.005

    Removed in Perl 5.10

  • perlcc

    Introduced in Perl 5.005

    Moved from Perl 5.9.0 to CPAN


brian d foy <>

Sébastien Aperghis-Tramoni <>


Copyright 2010, brian d foy <>


You can use and redistribute this document under the same terms as Perl itself.