sub routine_A { my ($name) = getinfo('name'); print $name; } sub routine_B { my ($address) = getinfo('address'); print $address; } sub getinfo { my %data; $data{name} = "Sam"; $data{address} = "123 Main St"; return @data{ @_ }; } routine_A; routine_B; print getinfo( 'name', 'address' );