~$ perl -e '$_="qwerty"; s/r/print pos(). "\n";/e; print $_;' 3 qwe1ty #### perl -e "\$_='qwerty'; s/r/print pos(). \"\n\";print \$&.\"\n\";/e; print \$_ . \"\n\";" 3 r qwe1ty ~$ #### #!/usr/bin/perl use strict; use warnings; use feature qw(say); # perl -le "\$_='qwerty';s/r/print pos()/e;" my $str ='qwerty'; $str =~ s/[rq]/say pos($str); say $&;/eg; print "\t\$str: $str \n\n"; my $str0 ='qwerty'; $str0 =~ s/(r|q)/say pos($str0); say $&;/eg; print "\t\$str0: $str0 \n\n"; my $str1 ='qwerty'; $str1 =~ s/[rz]/say pos($str0); say $&;/eg; print "\t\$str1: $str1 \n\n"; my $str2 ='qwerty_erk'; $str2 =~ s/r/say pos($str2); say $&;/eg; print "\t\$str2: $str2 \n\n"; my $var='four'; $var =~ s/[fu]/say pos($var); say $&;/eg; print $var . "\n\n"; #### ~/pl_test$ perl braveghost.pl 0 q 3 r $str: 1we1ty 0 q 3 r $str0: 1we1ty Use of uninitialized value in say at braveghost.pl line 17. r $str1: qwe1ty 3 r 8 r $str2: qwe1ty_e1k 0 f 2 u 1o1r ~/pl_test$