You can dereference two ways:
use warnings;
use strict;
my $weapons_ref = {
dagger => { cost => 8, damage => 4, armor => 0 },
shortsword => { cost => 10, damage => 5, armor => 0 },
warhammer => { cost => 25, damage => 6, armor => 0 },
longsword => { cost => 40, damage => 7, armor => 0 },
greataxe => { cost => 74, damage => 8, armor => 0 },
};
print "$weapons_ref->{dagger}{cost}, ${$weapons_ref}{dagger}{damage}";
Using -> or {$reference} is somewhat a matter of personal preference in simple cases, but the {} form can be easier to read when things get complicated. See perlref.
Optimising for fewest key strokes only makes sense transmitting to Pluto or beyond