Version 27 (modified by azawawi, 4 years ago) (diff)





  • install Padre-Plugin-Fix
  • enable in Plug-in Manager
  • Tools/Fix/Simplify

Uses PPI to identify and transform stuff from form A to B.

sub a {

die "hello world";

sub b {
  • From ticket:1200, Replace one or all occurrences of indirect notations such as this:
new Something("bla");

should become

  • Over selection text range, provide the ability to quote it and choose qq{} or q{}
  • Negate if block form with unless and vice versa
if(defined $fh) {
  say "File is open";
} else {
  say "File is not open!";

should become

unless(defined $fh) {
  say "File is not open!";
} else {
  say "File is open";
  • Transform if single statement into postfix form and vice versa:
if(defined $fh) {
  print "File is open";

should become

print "File is open" if defined $fh;
  • Add forgotten else clause to if block
  • Transform qq{string} where string does not contain escape sequences into q{string} or 'string'
  • if use v5.10; or greater is used, then print "something\n" can be transformed into say "something"
  • Transform my $param1 = shift into my ($param1) = @_; and vice versa
  • if-elsif-else transformation into given-when. Please see Switch statements
if($type eq 'a') {
} elsif($type eq 'b') {
} else {

should become

given($type) {
when ('a') { }
when ('b') { }
default    { }
  • Add Padre::Document::Perl::Beginner checks and convert them to PPI

No image "PadrePluginFix.png" attached to PadrePluginFix


  • assuming modern perl
    #!/usr/bin/env perl
    use 5.014;
    use strict;
    use warnings;
    use Carp;
    $| = 1;
    use feature 'unicode_strings';
    #1, the following " -> ' try for your self
    open ( my $filehandle, "<:utf8", "test.bin") or die $!;
    #2, food for thought only
    #before open ( my $filehandle, "<:utf8", "test.bin") or die $!;
    #after use Carp;
    #after my $filehandle = undef;
    #after open ( $filehandle, '<:encoding(UTF-8)', 'test.bin') or croak $!;
    my $word = readline $filehandle;
    #3, food for thought only
    #before print "word = $word\n";
    #after say 'word ='.$word;
    #4, food for thought only, an evil null if =~ fails
    #before my ($untainted) = $word =~ /^(\w+)$/;
    #after my $untainted = undef;
    #after $untainted = $word =~ /^(\w+)$/;
    say "untainted = $untainted";
    if ($untainted) {
        # It passed the regex, so it is "safe".
        system "echo $untainted";