- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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 //; оба продокуметированы - уже заставляет задуматся.