First off stop looking at it as a battle to win.
in reply to Convincing co-workers to learn Perl
If you push, people push back. Try to convince them that their existing tools suck, and every argument that they lose leaves them with a bad taste in their mouth. Plus every argument that they just walk away from will look to you like they conceded, but they won't think of it that way. (Anyone who "only smiles" probably is just trying to avoid what they see as a pointless argument - no matter how accurate your argument is you have lost it before you open your mouth.)
What you have to do is stop pushing. Rather it is more a question of being friendly and helpful, showing that you respect their skills and abilities, and seeking opportunities to work with them on problems in Perl. If you are about to solve a problem in Perl for someone, sit that person down and scan through your answer with them and ask them if that does what they want. Or deliberately write a script which needs to be edited to be configured, and show that person how to do the necessary editing.
Once you create a safe environment to learn, and convince the person that it will be easy to learn (and that the whole thing won't be an exercise in your demonstrating your own intelligence), people will be willing to accept what you have to offer. And in the process of creating that environment you will undoubtably find yourself learning things of unexpected value from your co-workers. Which, honestly, will be of more value to you in the long run than teaching them all to use Perl.