in reply to Re^2: Problem when comparing strings as opposed to numerical values
in thread Problem when comparing strings as opposed to numerical values

What if you print what you are trying to eval? I mean, run perl -d <your script>.pl, set a breakpoint on the line where the string comparsion occurs (b <line number>), run program to that line (c) and enter: x "$hash{$filter[1]->[0]} $filter[1]->[1] $filter[1]->[2]". What will it print?

Maybe using eval "q{$hash{$filter[1]->[0]}} $filter[1]->[1] q{$filter[1]->[2]}" can help, but it will break too if the strings contain some "{" or "}". What if you check for $@ special variable after running your evals?

Are you sure it won't be easier and safer to write a special sub to perform the checking?

Sorry if my advice was wrong.