Ok, I rewrote it using strict and warnings and replaced the switch with if/elsif statements. I have $opt declared as a global, but it's throwing the exact same error it was before For some reason I had a brain fart and forgot to use the <code> tags. Sorry about that. It's fixed now.
#!/usr/bin/perl use Tk; use warnings; use strict; # Variables for emulators use vars qw($snesCommand $genesisCommand $nesCommand $snesDirectory $n +esDirectory $genesisDirectory $opt $system $directory $command); $snesCommand="zsnes"; $genesisCommand="dgen"; $nesCommand="nestra"; $snesDirectory="~/roms/nes/"; $genesisDirectory="~/roms/genesis/Roms/"; $snesDirectory="~/roms/snes/Roms/"; my $mw=MainWindow->new(-title=>"Launcher"); my $systemPick=$mw->Optionmenu(-command=>\&changeList, -variable=>\$system); $systemPick->addOptions("SNES","NES","Genesis"); $opt=$mw->Scrolled("Listbox",-selectmode=>'single', -scrollbars=>"se"); my $go=$mw->Button(-text=>"Go for it", -command=>\&gogo); # Geometry $systemPick->pack(); $opt->pack(-expand=>1,-fill=>"both"); $go->pack(); sub changeList { $opt->delete(0,'end'); if ($system=="SNES") { $command=$snesCommand; $directory=$snesDirectory; my @dir=glob($snesDirectory); foreach my $file(@dir) { $file=~s/$directory//; $opt->insert('end',$file); } } elsif ($system=="NES") { $command=$nesCommand; $directory=$nesDirectory; my @dir=glob($nesDirectory); foreach my $file(@dir) { $file=~s/$directory//; $opt->insert('end',$file); } } elsif ($system=="Genesis") { $command=$genesisCommand; $directory=$genesisDirectory; my @dir=glob($genesisDirectory); foreach my $file(@dir) { $file=~s/$directory//; $opt->insert('end',$file); } } } sub gogo { my $selected=$opt->get($opt->curselection()); system("$command $directory$selected"); } &changeList; MainLoop;

In reply to Re^2: Tk Listbox problem by Sisk
in thread Tk Listbox problem by Sisk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.