require 5.6.0; # hoh's are ambiguous before 5.56 #### sub _least_key { my %self = (@_); shift @{[ sort { $a <=> $b } keys %self ]}; } #### # NON EXPORTED METHODS #### # EXPORTED METHODS #### bless $self; # dont need to return() it because bless returns a ref. #### $self -> {$in} -> {cr} -> (); # run it, its valid, we leave the code ref # to the hacker. however, rather than return, we implicitly return # whatever the code they gave us returned for purposes of modularity #### return undef unless defined $self{$input}; $input; #### return undef unless $self -> verify( $in ); #### return unless defined $self{$in}; #### shift @{[ sort { $a <=> $b } keys %self ]}; #### shift @{[ sort { $b <=> $a } keys %self ]}; #### foreach my $item ( sort( { $a <=> $b } keys %self ) ) { #### It is rather bloated to write menus with an object #### $self->{keys} = [ sort keys %{$self} ] #### please see perldoc perlref for a description of why we want to use +{ } instead of just { }. It isnt strictly necessary, but quote "may break in the future."