#!/usr/bin/perl -w use Fcntl qw(LOCK_EX); # instrument LOCK_EX my $lock_ex_coderef = \&Fcntl::LOCK_EX; my $newglob = *Fcntl::LOCK_EX = sub { print "LOCK_EX called\n"; no warnings 'redefine'; *Fcntl::LOCK_EX = $lock_ex_coderef; if (wantarray) { my @ret = &$lock_ex_coderef; *Fcntl::LOCK_EX = $newglob; @ret; } else { my $ret = &$lock_ex_coderef; *Fcntl::LOCK_EX = $newglob; $ret; } }; # call LOCK_EX print $_ = LOCK_EX; print "\n";