Changes for version 9.023

  • Parser:
  • some "goto" forms are transformed, so they work in JavaScript and Java backends.
  • fix chomp(), chop()
  • fix fat-arrow in argument lists
  • fix indirect object
  • indented heredoc with <<~"tag"
  • use $^H and %^H
  • set Perl version to 5.026
  • add core modules: Env Benchmark, Memoize DirHandle, File::Spec, File::Basename, Text::Abbrev, Text::ParseWords Time::Local, Time::localtime, Time::gmtime Getopt::Std, Getopt::Long Tie::Hash, Tie::Scalar, Tie::Array, warnings::register, Fcntl, Symbol, Term::ANSIColor, FindBin IO, IO::Handle, IO::Seekable, IO::File, Class::Struct, Perl::OSType integer, if, parent, subs, mro
  • syntax fixes for hash vs. block, and ${var->{index}}
  • CORE:: prefix (CORE::print, CORE::tr)
  • CORE::GLOBAL special namespace
  • CORE functions can be overridden
  • stacked operators in "-X" file test
  • remove "." from @INC
  • decode source code "magic number" for UTF-8, UTF-16LE, UTF-16BE
  • "hexfloat" literals
  • new operators '|.', '|.=', '&.', '&.=', '^.', '^.=', '~.'
  • "\N{U+263D}", "\N{YIN YANG}" string escape sequence
  • JavaScript:
  • fix some special cases with "$#" sigil
  • Java:
  • javax.script API registers "Perl5" interpreter example at misc/Java/Script.java
  • "jrunscript" support $ jrunscript -cp .:perlito5.jar -l Perl5
  • global variable lookup is cached
  • fix $^O, returns the the operating system name
  • "require", "require VERSION"
  • "opendir", "readdir", "closedir", "select", "binmode"
  • "vec"
  • "localtime", "gmtime"
  • tied hash
  • tied array
  • overload implemented for about half of the operators
  • strict refs
  • srand() returns true, warns on overflow
  • fix read-only values
  • "$\", "$;", "$^T"
  • caller() now works "natively", decoding the Java stack trace
  • symbol tables like %:: and typeglobs support
  • file tests: "-e", "-l", "-r", "-w", "-x"
  • lvalue ternary "?:", "vec", "substr"
  • regex modifier /xx /r
  • regex %+ named captures
  • regex named captures can have underscore in the name
  • SUPER method call
  • add core modules: Cwd, Sys::Hostname

Documentation

a Perl5 compiler

Modules

a Perl5 compiler