#!/usr/bin/perl use strict; use warnings; my $eq_op = 'eq'; my $ne_op = 'ne'; my $foo = '1234'; my $bar = 'abcd'; my %compare = ( eq => \&eq_compare, ne => \&ne_compare, ); if ( $compare{ $eq_op }->($foo, $bar) ) { print "$foo and $bar are the same string\n"; } if ( $compare{ $ne_op }->($foo, $bar) ) { print "$foo and $bar are not the same string\n"; } sub eq_compare { return $_[0] eq $_[1] } sub ne_compare { return $_[0] ne $_[1] }