in reply to Popo-up menu filled with array problem

You need to pass an array reference to the -values parameter, not the whole array itself. Adding labels to change what the user sees, you get something like this:

use CGI qw(:all); my @files = <../data/texts/*.txt>; my %labels = ( map { $_ => +( m!([^/]+)\z! ) } @files ); print popup_menu( -name => 'select', -values => \@files, -labels => \%labels ); __END__ <select name="select"> <option value="../data/texts/foo.txt">foo.txt</option> <option value="../data/texts/bar.txt">bar.txt</option> </select>