#!/usr/bin/env perl use strict; sub precompare { my $name = shift; my ($caller) = caller; $name = "$caller\::$name"; my @mem; no strict 'refs'; if (*{$name}{CODE}) { warn "Redefining sub $name\n"; } *{$name} = sub { my $x = shift; my $y = shift; push @mem,$y if($x eq $y); return @mem; }; }; precompare 'compare';