#!/usr/bin/env perl
####
#!/usr/bin/env perl
use 5.014;
use strict;
use warnings;
...
####
$ alias perle
alias perle='perl -Mstrict -Mwarnings -Mautodie=:all -E'
$ perlbrew switch perl-5.24.0t
$ perl -v | head -2 | tail -1
This is perl 5, version 24, subversion 0 (v5.24.0) built for darwin-thread-multi-2level
$ perle 'my $x = [qw{a b c}]; say "@{$x}"; say "$x->@*"'
a b c
a b c
$ perlbrew switch perl-5.22.0t
$ perl -v | head -2 | tail -1
This is perl 5, version 22, subversion 0 (v5.22.0) built for darwin-thread-multi-2level
$ perle 'my $x = [qw{a b c}]; say "@{$x}"; say "$x->@*"'
a b c
ARRAY(0x7ff4d2805480)->@*
$ perle 'no warnings "experimental::postderef"; use feature qw{postderef postderef_qq}; my $x = [qw{a b c}]; say "@{$x}"; say "$x->@*"'
a b c
a b c
$ perlbrew switch perl-5.20.0t
$ perl -v | head -2 | tail -1
This is perl 5, version 20, subversion 0 (v5.20.0) built for darwin-thread-multi-2level
$ perle 'no warnings "experimental::postderef"; use feature qw{postderef postderef_qq}; my $x = [qw{a b c}]; say "@{$x}"; say "$x->@*"'
a b c
a b c
$ perlbrew switch perl-5.18.0t
$ perl -v | head -2 | tail -1
This is perl 5, version 18, subversion 0 (v5.18.0) built for darwin-thread-multi-2level
$ perle 'no warnings "experimental::postderef"; use feature qw{postderef postderef_qq}; my $x = [qw{a b c}]; say "@{$x}"; say "$x->@*"'
Unknown warnings category 'experimental::postderef' at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
####
...
use version; our $VERSION = qv("v1.2.3"); # deprecated
...
our $VERSION = "1.0203"; # recommended
...
####
...
{
my $re; BEGIN { $re = qr{(?x: [%/?<>\\:*|":] )} }
for ... {
... s/$re/_/gr;
}
}
####
$ perle 'my $re; BEGIN { $re = qr{(?x: [%/?<>\\:*|":] )} } say q{%/?<>\\:*|":} =~ s/$re/_/gr'
___________
$ perle 'say q{%/?<>\\:*|":} =~ y{%/?<>\\:*|":}{_}r'
___________
$ for i in {1..5}; do perle 'use Benchmark qw{cmpthese}; my $re; BEGIN { $re = qr{(?x: [%/?<>\\:*\|":] )} }; my $str = q{%/?<>\\:*|":}; cmpthese 0 => { s => sub { $str =~ s/$re/_/gr }, y => sub { $str =~ y{%/?<>\\:*|":}{_}r } }'; done
Rate s y
s 212144/s -- -96%
y 5420361/s 2455% --
Rate s y
s 204213/s -- -96%
y 5632150/s 2658% --
Rate s y
s 201600/s -- -97%
y 5771041/s 2763% --
Rate s y
s 204103/s -- -96%
y 5026909/s 2363% --
Rate s y
s 222651/s -- -96%
y 5600560/s 2415% --
####
{
my @uris;
my $finder_code = sub { push @uris, shift };
sub finder_sub { push @uris, shift }
for ... {
...
@uris = ();
my $code_finder = URI::Find::->new($finder_code);
my $sub_finder = URI::Find::->new(\&finder_sub);
...
}
}