use strict; my %variable; my %operation; $operation{eq} = sub { my ($op1, $op2) = @_; return $op1 eq $op2; }; $operation{ne} = sub { my ($op1, $op2) = @_; return $op1 ne $op2; }; sub evaluate { my ($var,$op,$value) = @_; if (defined $operation{$op}) { my $code = $operation{$op}; return $code->( $variable{$var}, $value ); } else { die "Unknown operator : $op\n"; }; }; $variable{foo} = 'FOO'; $variable{bar} = 'BAR'; my ($var,$op,$val); foreach $var (keys %variable) { foreach $op (keys %operation) { foreach $val ('FOO','BAR','neither') { print "$var $op $val :", evaluate( $var, $op, $val ), "\n"; }; }; }; #### perl -MHTTP::Daemon -MHTTP::Response -MLWP::Simple -e ' ; # The $d = new HTTP::Daemon and fork and getprint $d->url and exit;#spider ($c = $d->accept())->get_request(); $c->send_response( new #in the HTTP::Response(200,$_,$_,qq(Just another Perl hacker\n))); ' # web