in reply to Re^2: double sort HoH by value/key
in thread double sort HoH by value/key

I find it hard to comprehend how sort can "see outside" of the foreach loop.

That's common for all blocks.

my $var = "Hi!"; { print("$var\n"); }
my $var = "Hi!"; for (1..2) { print("$var\n"); }
my $var = "Hi!"; print(map { "$var\n" } 1..2);
my $var = "Hi!"; sub func { print("$var\n"); } func();

Yes, the following works even though $var goes out of scope before func is called.

{ my $var = "Hi!"; sub func { print("$var\n"); } } func();