Thread replace nth occurence: Code verstehen
(16 answers)
Opened by Student87 at 2013-03-10 11:04
$s =~ s/(sneak)/ ++$i == $n ? $repl : $1 /eg;
es gibt da kein geteilt durch. das ist eine substitution: s/ ... / ... /eg; das /eg steht für: e wie eval, und g wie globally. eval bedeutet hier, dass die rechte seite der substitution als ersetzungscode angesehen wird, nicht nur als string. d.h. der code ++$i == $n ? $repl : $1 wird bei jeder ersetzung ausgeführt. das mit dem fragezeichen ist eine verkürzung von if/else: ++$i == $n ? $repl : $1 gleich if (++$i == $n) { $repl } else { $1 } lies mal perlop Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wie frage ich & perlintro brian's Leitfaden für jedes Perl-Problem |