2010-05-10 40 views
7

Chúng ta có tương đương preg_callback trong Perl không?Perl tương đương với preg_callback của PHP

Cho phép nói rằng tôi muốn khớp thứ gì đó và thay thế bằng giá trị trả lại của hàm được gọi với điều phù hợp.

+0

Khi yêu cầu một chức năng tương đương từ một ngôn ngữ khác, nó là một ý tưởng tốt để giải thích những gì nó làm và/hoặc liên kết đến tài liệu cho hàm. – daotoad

Trả lời

16

Sử dụng s///e - công cụ sửa đổi đánh giá và bạn có thể đặt mã perl tùy ý trong phần thứ hai.

$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

Cảm ơn bạn đã trả lời nhanh, bạn có thể đưa ra một ví dụ ngắn hay không. Nói rằng tôi muốn thay thế điều tương ứng với đảo ngược của nó. – Joseph

+0

'my $ string =" abc "; (my $ reverseString = $ string) = ~ s/(bc)/đảo ngược $ 1/e; 'sẽ khiến' $ reverseString' trở thành '" acb "'. @ Joseph: Tôi đề nghị bạn chỉnh sửa câu hỏi của bạn để yêu cầu ví dụ ngược lại, vì vậy tôi có thể đăng bài này như là một câu trả lời riêng biệt. – Zaid

+0

Tôi đã thêm @Joseph, cũng nhờ Zaid – YOU

Các vấn đề liên quan