Tujuan umum terbaik - Terutama array pendek (1000 item atau kurang) dan coders yang tidak yakin tentang optimasi apa yang paling sesuai dengan kebutuhan mereka.
# $value can be any regex. be safe
if ( grep( /^$value$/, @array ) ) {
print "found it";
}
Telah disebutkan bahwa grep melewati semua nilai bahkan jika nilai pertama dalam array cocok. Ini benar, namun grep masih sangat cepat untuk sebagian besar kasus . Jika Anda berbicara tentang array pendek (kurang dari 1000 item) maka sebagian besar algoritma akan menjadi sangat cepat. Jika Anda berbicara tentang array yang sangat panjang (1.000.000 item), grep dapat diterima dengan cepat terlepas dari apakah item tersebut adalah yang pertama atau tengah atau terakhir dalam array.
Kasus Optimasi untuk array yang lebih panjang:
Jika array Anda diurutkan , gunakan "pencarian biner".
Jika array yang sama berulang kali dicari berkali-kali, salin ke hash dulu dan kemudian periksa hash. Jika memori menjadi masalah, maka pindahkan setiap item dari array ke hash. Lebih banyak memori efisien tetapi menghancurkan array asli.
Jika nilai yang sama dicari berulang kali dalam array, malas buat cache. (karena setiap item dicari, periksa terlebih dahulu apakah hasil pencarian disimpan dalam hash tetap. Jika hasil pencarian tidak ditemukan dalam hash, lalu cari array dan masukkan hasilnya dalam hash persisten sehingga waktu berikutnya kita akan temukan di hash dan lewati pencarian).
Catatan: optimasi ini hanya akan lebih cepat ketika berhadapan dengan array panjang. Jangan terlalu mengoptimalkan.