- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
sub translateToSearch {
my($search)=@_;
$search =~ s/\ /\*/g;
my $s_up=to_upper($search);
my $s_low=to_lower($search);
my $s="";
my $last_s="";
for($i=0;$i<length($search);$i++) {
my $ch=substr($search,$i,1);
if(!($ch eq "*")) {
$s.="[".substr($s_up,$i,1).substr($s_low,$i,1)."]";
} elsif( !($last_s eq "*")) {
$s.=".*";
}
$last_s=$ch;
}
return $s;
}
но кривовато как-то...
"^" => ?
и очень очень кривовато. вся функция делает вот это, если не ошибаюсь:
незнание сучествования оператора ne - или того же split //; оба продокуметированы - уже заставляет задуматся.