2009-04-20 4 views
2

J'ai des scripts awk qui utilisent gawk de cygwin. Maintenant, j'ai besoin de passer ces scripts à des collègues qui n'ont pas installé cygwin, mais qui ont Perl. J'espérais que je peux simplement utiliser A2P qui est inclus dans Cygwin, mais il échoue avec des erreurs comme les suivantes:Comment puis-je faire gawk de support de Perl a2p?

Undefined subroutine &main::gensub called at ./t.pl line 18, <> line 1. 

J'espère que les bibliothèques existantes il y a Perl/modules qui mettent en œuvre ces méthodes. Des pointeurs?

Répondre

5

La fonction gensub() n'est pas prise en charge par a2p. Si vous modifiez votre code pour utiliser gsub() à la place, il devrait compiler.

Vous pouvez également ajouter un sous-programme gensub() à la fin du programme Perl traduit pour simuler la fonctionnalité gensub().

Cependant, le code Perl produit par a2p n'est pas très maintenable, donc je ne l'utiliserais qu'en dernier recours.

Si votre programme gawk ne fait pas d'appels à d'autres utilitaires cygwin/unix, il serait probablement préférable de simplement distribuer un exécutable Windows gawk à vos collègues avec le programme.

+0

Merci pour votre réponse. J'essayais aussi d'apprendre un peu de perl en utilisant a2p. Votre réponse aide. –

Questions connexes