2016-12-07 73 views
-1

我想使用CGI模块显示popup_menu ,并将按照标签排序的值作为散列提供。显示按标签排序的CGI popup_menu

我有这样的代码

print $list->popup_menu(
     -name  => 'param', 
     -values  => \@data, 
     -default =>['default'], 
     -labels  => \%labels, 
     -size  =>10, 
     -multiple =>0, 
    ); 

目前,输出的值在@data排列的顺序列表。我希望它在%labels中按名称的字母顺序显示。

+0

您正在使用什么库? [CGI](http://p3rl.org/CGI)? [Tk的](http://p3rl.org/Tk)? – choroba

+0

另外,这看起来不正确:'-labels =>%labels'。散列用于列表上下文中,因此它扩展为交替键和值的列表。 – choroba

+0

使用CGI,并更正了代码 – Cris

回答

2

排序的“价值”的价值观从标签%:

-values  => [ sort { $labels{$a} cmp $labels{$b} } @data ],