Я могу придумать, по крайней мере, три причины использовать XS:
- У вас есть библиотека C, к которой вы хотите получить доступ в Perl 5
- У вас есть блок кода, который явно замедляет вашу программу, и он будет быстрее, если будет написан на C
- Вам нужен доступ к тому, что доступно только в XS
Причина 1 очевидна и не нуждается в объяснении.
Когда вам действительно нужна причина 2, она менее очевидна. Часто вам лучше посмотреть, как структурирован код. Вы должны вызывать причину 2, только если вы профилировали свой код и у вас есть тест и набор тестов , чтобы доказать, что код XS быстрее и правильнее.
Причина 3 - опасная причина. Редко когда вам действительно нужно посмотреть в Perl, чтобы что-то сделать, но есть хотя бы один действительный случай .