my $k = each %h;
Однако вы должны не забыть сбросить итератор, если вы когда-нибудь захотите снова использовать его в том же хеше.Либо другой each
сделает это, либо keys
сделает это, и, если он используется в скалярном контексте, будет избегать создания списка.Таким образом, вы можете сбросить его с помощью
scalar keys %h;
# OR
each %h; # <- gets the undef
my $k2 = each %h; # <- gets the first key
Таким образом, вы можете сделать это следующим образом:
my $k = ( scalar keys %h, each %h );
Но при условии, что это похоже на чтение сообщений JSON и прочее, где вы просто хотите прочитать, что находитсяхэш один раз и выбросить его, это, пожалуй, самый краткий.Однако, если вам нужна переменная сразу, вероятно, это проще сделать:
my ( $k, $v ) = each %$simple_JSON_structure;