/[webpac]/trunk/filter/mem_lookup.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/filter/mem_lookup.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 205 by dpavlin, Sun Jan 18 21:11:39 2004 UTC revision 207 by dpavlin, Sat Jan 31 21:03:06 2004 UTC
# Line 31  sub mem_lookup { Line 31  sub mem_lookup {
31                          # store in array if it doesn't exist                          # store in array if it doesn't exist
32                          if (! grep(/^$v$/, @{$main::cache->{mem_lookup}->{$k}})) {                          if (! grep(/^$v$/, @{$main::cache->{mem_lookup}->{$k}})) {
33                                  push @{$main::cache->{mem_lookup}->{$k}}, $v;                                  push @{$main::cache->{mem_lookup}->{$k}}, $v;
34  #print STDERR "## mem_lookup store: $k => $v\n";  #print STDERR "## mem_lookup store: $k => $v [",join("|",@{$main::cache->{mem_lookup}->{$k}}),"]\n";
35                          }                          }
36                  } elsif (/^(.*)\[([^\[]*)\[([^\[\]]+)\]([^\]]*)\](.*)$/) {                  } elsif (/^(.*)\[([^\[]*)\[([^\[\]]+)\]([^\]]*)\](.*)$/) {
37                          # indirect lookup [prefix[key]suffix]                          # indirect lookup [prefix[key]suffix]
38                          my ($pre,$prek,$k,$postk,$post) = ($1,$2,$3,$4,$5);                          my ($pre,$prek,$k,$postk,$post) = ($1,$2,$3,$4,$5);
39                          if ($main::cache->{mem_lookup}->{$k}) {                          if ($main::cache->{mem_lookup}->{$k}) {
40                                  my @keys = @{$main::cache->{mem_lookup}->{$k}};                                  my @keys = @{$main::cache->{mem_lookup}->{$k}};
41  #print STDERR "## mem_lookup fetch keys $k == ".join("|",@keys)."\n";  #print STDERR "## mem_lookup fetch keys $pre|$prek|$k|$postk|$post == [".join("|",@keys)."]\n";
42                                  foreach my $k2 (@keys) {                                  foreach my $k2 (@keys) {
43                                          if ($main::cache->{mem_lookup}->{$prek.$k2.$postk}) {                                          my $full_k = $prek.$k2.$postk;
44                                                  foreach my $v (@{$main::cache->{mem_lookup}->{$prek.$k2.$postk}}) {                                          if ($main::cache->{mem_lookup}->{$full_k}) {
45                                                          push @out,$pre.$v.$post;                                                  foreach my $v (@{$main::cache->{mem_lookup}->{$full_k}}) {
46                                                            my ($pret,$postt) = ($pre,$post);
47                                                            $pret=~s/\[$k\]/$k2/g;
48                                                            $postt=~s/\[$k\]/$k2/g;
49                                                            push @out,$pret.$v.$postt;
50                                                  }                                                  }
51                                          }                                          }
52                                  }                                  }
53  #print STDERR "## mem_lookup return values $k == ".join("|",@out)."\n";  #print STDERR "## mem_lookup return values $pre\[$prek\[$k\]$postk\]$post == [".join("|",@out)."]\n";
54    
55                          }                          }
56                  } elsif (/^(.*)\[([^\[\]]+)\](.*)$/) {                  } elsif (/^(.*)\[([^\[\]]+)\](.*)$/) {
# Line 66  sub mem_lookup { Line 70  sub mem_lookup {
70                  }                  }
71          }          }
72  #print STDERR "mem_lookup dump: ",Dumper($main::cache->{mem_lookup}),"\n";  #print STDERR "mem_lookup dump: ",Dumper($main::cache->{mem_lookup}),"\n";
73    #print STDERR "out: ".Dumper(@out)."\n" if (@out);
74          return @out;          return @out;
75  }  }
76    

Legend:
Removed from v.205  
changed lines
  Added in v.207

  ViewVC Help
Powered by ViewVC 1.1.26