{ my %h = ( x=>5, y=>8 ); while ( my ($r,$s) = each %h ) { ... } } #### for ({ x=>5, y=>8 }) { while ( my ($r,$s) = each %$_ ) { ... } } #### for (paired( x=>5, y=>8 )) { my ($r,$s) = @$_; ... } #### sub paired { my @pairs; push @pairs, [ shift, shift ] while @_; return @pairs; } #### paired { my ($r,$s) = @_; ... } ( x=>5, y=>8 ); #### sub paired(&@) { my $cb = shift; my @rv; push @rv, $cb->(shift, shift) while @_; return @rv; }