In Perl, it seams, there is no "simple" way to address a hash directly when it is returned from a sub or am I missing something?

I would like something like this.

```
print ( (hash()){One} ); # Not a thing!

```

You can do that whit an array since the values returned constitute a list.

```
print ( (arr())[0] );

```

But for a hash that does not cut it. I have come up with some ways to sort of get this to work.

```
print ( ${{hash()}}{One} );
print ( 0+{hash()}->{One} );

```

But they seem kinda lame. I mean this is hard to read and reference shenanigans seams out of place for such a simple thing.

Here is more code for context.

```
use strict;
use warnings;

### ARRAY
sub arr {
    my @arr = (
        1,
        2,
        3,  
    );
    return @arr;
}

print ( (arr())[0] ); #Output is 1; 

### HASH
sub hash {
    my %hash = (
        One   => 1,
        Two   => 2,
        Three => 3,
    ); 
    return %hash;
}

my %hash = hash();

#print ( (hash()){One} );       # Does not work
print ( $hash{One}  );          # Output is 1
print ( (hash())[0] );          # Output will be One, Two or Three
print ( (hash())[1] );          # Output will be 1, 2, 3
print ( ${{hash()}}{One} );     # Output is 1
print ( 0+{hash()}->{One} );    # Output is 1;
# 0+ because Perl gives syntax error otherwise. Not sure why (Scalar context?) but one mystery at a time. 

```