2010-05-10 9 views
7

¿Tenemos un equivalente de preg_callback en Perl?Perl equivalente de preg_callback de PHP

Digamos que quiero hacer coincidir algo y reemplazarlo con el valor de retorno de la función que se llama con el elemento coincidente.

+0

Al pedir una función equivalente de otro idioma, es una buena idea para explicar lo que hace y/o enlazar documentación para la función. – daotoad

Respuesta

16

Use s///e - modificador de evaluación y puede poner códigos de perl arbitrarios en la segunda parte.

$x = "this is a test"; 
$x =~ s/(test)/reverse($1)/eg; 
print $x; 

//this is a tset 

ref: http://perldoc.perl.org/perlretut.html#Search-and-replace

+0

Gracias por la respuesta rápida, puede dar un pequeño ejemplo. Digamos que quiero reemplazar la cosa emparejada con su reverso. – Joseph

+0

'my $ string =" abc "; (my $ reverseString = $ string) = ~ s/(bc)/reverse $ 1/e; 'hará que' $ reverseString' se convierta en '" acb "'. @Joseph: sugiero que edites tu pregunta para pedir el ejemplo inverso, para poder publicar esto como una respuesta separada. – Zaid

+0

He añadido @Joseph, también gracias por Zaid – YOU

Cuestiones relacionadas