sub process { my ($string) = @_; my $inside; my $pos = 0; my @replace; while ($pos < length $string) { my $action = { '\\' => sub { ++$pos }, '<' => sub { unshift @replace, $pos if $inside }, '`' => sub { unless ($inside = ! $inside) { substr $string, $_, 1, '&lgt;' for @replace; $pos += 5 * @replace; @replace = (); } }, }->{ substr $string, $pos, 1 }; $action->() if $action; ++$pos } return $string } #### ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,