The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Descriptions;

use Attribute::Handlers::Prospective;

my %name;

sub name {
	return $name{$_[2]}||*{$_[1]}{NAME};
}

sub UNIVERSAL::Name :ATTR(RAWDATA) {
	$name{$_[2]} = $_[4];
}

sub UNIVERSAL::Purpose :ATTR(RAWDATA) {
	print STDERR "Purpose of ", &name, " is $_[4]\n";
}

sub UNIVERSAL::Unit :ATTR(RAWDATA) {
	print STDERR &name, " measured in $_[4]\n";
}


1;