package MyGMTime; # MUST be ordered correctly: use enum qw(sec min hour mday mon year wday yday); sub new { my ($class) = shift; my @values = gmtime(); bless [@values], $class; } sub get { my ($self, $field) = @_; no strict 'refs'; return $self->[&$field]; } package main; my $x = MyGMTime->new; print $x->get("year"), "\n"; # mnemonic/hashly print $$x[5], "\n"; # arrayish