#!/usr/bin/env perl use strict; use warnings; use 5.010; package Foo; sub new { return bless $_[1] } sub show_properties { my $self = shift; my ($foo, $bar, $baz) = @$self{qw( foo bar baz )}; say "foo: $foo, bar: $bar, baz: $baz"; } package main; my $foo = Foo->new( { foo => 1, bar => 2, baz => 3 } ); $foo->show_properties;