#!/usr/bin/perl use warnings; use strict; my @constants = qw(ONE TWO); for my $member (@constants){ no strict 'refs'; my $thing; *{$member} = sub { $thing = shift if @_; return $thing; } } ONE("1: one\n"); TWO(2); print ONE(), TWO() ."\n";