Google translate - perl (update)

![](http://1.bp.blogspot.com/_ypU0iaR-LmM/TDITz- BFVYI/AAAAAAAAAQs/umysQJAVTdk/s320/google-perl.png)Artikel ini merupakan perbaikan dari postingan sebelumnya “Google translate perl”. Perbaikan ini karena pada code tersebut ada ketidakpuasan terhadap hasil akhir translate bahasanya yaitu :

  1. Masih adanya karakter doubleqoute yang masih nyangkut di hasil translate.

  2. Penggunaan opsi split dengan menggunakan delimiter/pemisah titik dua(:), mengakibatkan kerancuan jika kata yang ingin ditranslate juga terdapat karakter ’titik dua’, sehingga hasil translate jadi kacau.

  3. Dari tutorial yang dibaca tadi pas lagi browsing dikatakan penggunaan unpack lebih cepat dari substr meski ada pengecualian. Referensi

Berikut perubahan yang dilakukan pada source code nya:

if($ret =~ /200/) {  
$retLength=length($ret);  
my $constRet=($retLength-36)-51;  
$retFinal = unpack("x36 A$constRet",$ret);  
#    @retArr=split(/:/,$ret);  
#    $retFinal=substr(@retArr[2],0,-20);  
print "$retFinal\n";

Angka angka diatas didapat dari nilai kembalian dari fungsi get ketika melakukan request ke Api Google Translate, karena format selalu sama maka angka 36 berarti 36 karakter dari depan, sedangkan 51 dari belakang. Jadi kata yang diambil yaitu panjang $ret - 36 - 51.

Untuk penggunaan di Windows bisa dengan menginstall perl atau biar lebih mudah gunakan perl2exe.