<%args> $type => 'top' <%perl> # @menu is declared as mason global in the fcgi handler script, # and set n a <%once> block in a syshandler. # set selector code based on menu type my $selector = $type eq 'top' ? q[class="sf-menu sf-js-enabled sf-shadow"] : q[id="footerNavigation"]; # recursive closure with y-combinator to generate nested list my $path = $r->path_info(''); # set path context my $hash2menu = sub { my ( $item, $code, $self ) = @_; if ( defined($code) && $code ne q{} ) { print qq[\n