in reply to
variable constructs that I do not understand
You should have posted at least the full line of code, but I think I found what you're referring to at:
floor.pl
my $floor_number;
for $floor_number (1..3) {
$c->bind("floor${floor_number}", '<1>' => # line 64
[\&floor_display, $floor_number, \%floor_labels, \%floor_items
+,
\%cinfo, \$active_floor, $c_entry],
);
The first time through the loop,
floor${floor_number} will become the literal string
floor1 because of interpolation. The curlies are used to separate a variable from the strings around it without the need for whitespace. See
Scalar value constructors.
For $$active_floor, see perlref