use constant FOO => "a string"; sub constant_name { return (grep { $_[0] eq (\&{$_})->() } keys %constant::declared)[0] =~ /::(.*?)\z/; } print constant_name(FOO);