#!/usr/bin/perl -w use strict; my $searchstring = "aaaa OR bbbb OR cccc OR dddd"; $searchstring =~ s/(\w+) ?(OR|NOT|AND)|(\w+)$/\(fieldname \= '$1$3'\) $2/g; print "SELECT * FROM tablename WHERE $searchstring\n"; __OUTPUT__ Use of uninitialized value in concatenation (.) or string at a.pl line 7. Use of uninitialized value in concatenation (.) or string at a.pl line 7. Use of uninitialized value in concatenation (.) or string at a.pl line 7. Use of uninitialized value in concatenation (.) or string at a.pl line 7. Use of uninitialized value in concatenation (.) or string at a.pl line 7. SELECT * FROM tablename WHERE (fieldname = 'aaaa') OR (fieldname = 'bbbb') OR (fieldname = 'cccc') OR (fieldname = 'dddd')