段階的にこう書くところを if ( exists $hashref->{'key'} ) { my $value = $hashref->{'key'}; delete $hashref->{'key'}; do something... } key の削除を先に行っても問題なければ、まとめてこう書くことも出来ます。 if ( my $value = delete $hashref->{'key'} ) { do something... } チーム開発などでは下記の書き方は処理が一目で判りにくいので避けた方が良いですが、ひとつの知識として。