#!/usr/bin/perl -w use strict; use warnings; use diagnostics; use CGI; my $cgi=CGI->new; my %data = ( test1 => ['anzeige1','anzeige2'], test2 => ['val1','val2'], ); build_formfield(\%data); sub build_formfield { my %deref = %{$_[0]}; if (1==2) { # nur zum Umschalten für Tests print STDOUT $cgi -> popup_menu ( -name => 'fieldname', -values => $deref{'test2'}, # dies hier klappt (natürlich nicht): -labels => {$deref{'test2'} => $deref{'test1'}} ); } else { print STDOUT $cgi -> popup_menu ( -name => 'fieldname', -values => ['value1','value2'], # und das soll rauskommen: -labels => { 'value1' => 'anzeige1', 'value2' => 'anzeige2', }, ); } }