',' x scalar @array;
####
m/.(?{ $array[ pos ] = do_smth(); })(*FAIL)/;
####
#!/usr/bin/perl -wl
use strict;
my @A = ( -5, 3, 1, -2 );
my $acc = 0;
for my $i ( 0 .. @A - 2 ){
$acc += abs( $A[ $i ] - $A[ $i + 1 ] );
}
print $acc;
$acc = 0;
( ',' x ( @A - 1 ) ) =~ /
.
(?{
$acc += abs( $A[ $-[0] ] - $A[ $-[0] + 1 ] );
})
(*FAIL)
/x;
print $acc;
####
13
13
####
#!/usr/bin/perl -wl
use strict;
my @A = qw( d c b a );
print "@A";
for my $i ( 0 .. @A - 2 ){
for my $j ( reverse $i .. @A - 2 ){
print ' ' x $i . "<$A[ $j ]> cmp <$A[ $j + 1 ]>";
}
}
print "-" x 5;
( ',' x ( @A - 1 ) ) =~ m/
.
.*
(?{
print ' ' x $-[0] . "<$A[ $+[0] - 1 ]> cmp <$A[ $+[0] ]>";
})
(*FAIL)
/x;
print "-" x 5;
( ',' x ( @A - 1 ) ) =~ m/
.
.*
(?{
$A[ $+[0] - 1 ] gt $A[ $+[0] ] and
( $A[ $+[0] - 1 ], $A[ $+[0] ] ) =
reverse
( $A[ $+[0] - 1 ], $A[ $+[0] ] );
print "--@A";
})
(*FAIL)
/x;
print "@A";
####
d c b a
cmp
cmp
cmp
cmp
cmp
cmp
-----
cmp
cmp
cmp
cmp
cmp
cmp
-----
--d c a b
--d a c b
--a d c b
--a d b c
--a b d c
--a b c d
a b c d
####
#!/usr/bin/perl -wl
use strict;
my @A = qw( d c b a );
print "@A";
for my $i ( 0 .. @A - 2 ){
for my $j ( $i .. @A - 2 ){
print ' ' x $i . "<$A[ $j ]> cmp <$A[ $j + 1 ]>";
}
}
print "-" x 5;
( ',' x ( @A - 1 ) ) =~ m/
.
.*?
(?{
print ' ' x $-[0] . "<$A[ $+[0] - 1 ]> cmp <$A[ $+[0] ]>";
})
(*FAIL)
/x;
print "-" x 5;
my $jmin;
( ',' x ( @A - 1 ) ) =~ m/
.
(?{ $jmin = $+[0] - 1; })
.*?
(?{
$A[ $jmin ] gt $A[ $+[0] ] and
$jmin = $+[0];
})
$
(?{ $jmin != $-[0] and
( $A[ $-[0] ], $A[ $jmin ] ) =
reverse
( $A[ $-[0] ], $A[ $jmin ] );
print "--@A";
})
(*FAIL)
/x;
print "@A";
####
d c b a
cmp
cmp
cmp
cmp
cmp
cmp
-----
cmp
cmp
cmp
cmp
cmp
cmp
-----
--a c b d
--a b c d
--a b c d
a b c d
####
#!/usr/bin/perl -w
use strict;
my @A = ( 1 .. 3, 'abc', 'zz', 79, 444, 5 );
for( my $i = 0; $i < @A - 2; $i += 2 ){
print "[$A[ $i ]-$A[ $i + 1 ]-$A[ $i + 2 ]]";
}
print "\n";
for my $i ( grep $_ % 2 == 0, 0 .. @A - 3 ){
print "[$A[ $i ]-$A[ $i + 1 ]-$A[ $i + 2 ]]";
}
print "\n";
( ',' x ( @A - 1 ) ) =~ m/
(,)
(,)(*SKIP)
(,)
(?{ print "[$A[ $-[ 1 ] ]-$A[ $-[ 2 ] ]-$A[ $-[ 3 ] ]]" })
# (?{ local $" = '-'; print "[@A[ @-[ 1 .. 3 ] ]]" }) # same output
# (?{ local $" = '-'; print "[@A[ $-[ 0 ] .. ( pos ) - 1 ]]" }) # same output
(*FAIL)
/x;
print "\n";
####
[1-2-3][3-abc-zz][zz-79-444]
[1-2-3][3-abc-zz][zz-79-444]
[1-2-3][3-abc-zz][zz-79-444]