Compatible with: IntelliJ IDEA PhpStorm WebStorm PyCharm RubyMine AppCode CLion GoLand DataGrip Rider MPS Android Studio
Nov 30, 2018
260 770

This plugin provides Perl5 & Pod support. Basic functionality may be extended with additional plugins:

More information may be found in our Wiki.



Bug Tracker | Twitter | Gitter | Google Group | Sources | PayPal

Download plugin

Recent change notes

Updates:

  • IMPORTANT: - in 2018.3, Perl plugin was split into several plugins. One for each framework or extension. Don't forget to install them if necessary.
  • fileno information is now available in the debugger, by @ivanych (requires debugger module 2018.3+)
  • Markers for automatic injections into here-docs and literals using #@inject annotation are now configurable in the Perl settings, by @aldem
  • Scripts, executed in console is now ran with Pty and supports ANSI colorized output.
  • Alternative sdk configuration re-worked and allows to choose one of the registered interpreters (NB: old configurations may break if used alternative paths), #1423
  • Missing library notification now have actions to install a missing package with cpan or cpanminus.
  • perltidy and perlcritic scripts are now discovered automatically in the selected interpreter and manual configuration is no longer possible, #1809 & #1810.
  • IDE listens process output for a missing package warnings and suggests to install them.
  • plenv version manager is now supported, by @aptituz
  • berrybrew version manager is now supported, #1643
  • perlbrew version manager is now supported, #320
    • Action to create a library available in Tools: Perl section. Available if perlbrew is selected as a current interpreter.
    • Action to install a cpanm and patchperl using perlbrew.
  • Action to install a Perl5 for the version manager is available in Tools: Perl section. Available if vm-based perl is selected as current interpreter.
  • Action to install arbitrary packages using cpan or cpanmn.
  • Action for installing App::cpanminus in Tools: Perl section
  • Action to refresh current interpreter information. Plugin watches for the filesystem changes and most likely catches external changes to the interpreter (e.g. installing package from console), but not always (and for sure can't do this in the remote case). This action forces IDE to refresh current interpreter data, so all changes should be catched. (NB: this action is more like an emergency thing, so if you often forced to use it, it's probably worth to start an issue in the tracker.)
  • Missing package file inspection suggests a quickfix to install a package using cpan/cpanminus, by @yxliang01
  • WSL support. Windows users may use not only system perl and berrybrew, but WSL distributions with version managers in them, #1820 (via separate plugin)
  • Docker support. You may use a Perl5 from Docker container, by @drmmr763 (via separate plugin)

Fixes:

  • Create mojo and embedded file actions are available when IDE indexing files, #1856
  • Fixed debugger connection problem on MacOs. From now on, debugger will try to connect to the process 10 times with 1 second pause, by @seanmostafavi
  • Fixed occasional templates in templating languages, #1846
  • Fixed exception with enabled quickdoc on mouseover, #1852
  • Fixed possible exception on remote debugging, by @huckeduster
  • Fixed possible stackoverflow on perl interpreter migration
  • Fixed IllegalAccessError in Mojo/Mason plugins, by @huckeduster
  • scalar is properly parsed as an unary operator, @Zaitsev.
  • Bare string in say string => $val; is no longer parsed as handle, #1847
  • Formatter no longer trying to unquote strings with leading `+` or multiple `-` if optional quotation is suppressed, @NGEfreak
  • Improved existing interpreters migration to a new version, #1848
  • Sdk selection panel is not wrapped on resize, #1786
  • Run With Coverage should work fine with version managers, by @floreal
  • Typing and removing parens, brackets and braces as quotes for quote-like operators inside normal parens, brackets and braces now works properly, by @aldem
  • Better inline POD handling, by @Christoffen