lil_v has asked for the wisdom of the Perl Monks concerning the following question:

Hi, I'm trying to create a link to a file so when the user clicks on a button the file pops open. I'm having trouble opening the file, here is the bit where I'm doing it wrong:
$f_comp->Radiobutton(-text => "Open", -value => "open", -font => 'Garamond 16 bold', -command => sub { open(Tabs,"C:\Users\Perl Tk\Project") })->pack(-anchor => 'w');

Replies are listed 'Best First'.
Re: Open File
by zentara (Cardinal) on Jun 25, 2008 at 16:34 UTC
    I don't use windows, and I don't know what Tabs is, maybe you need to use system or fork-and-exec to run Tabs? But to do it in pure Tk ( with some extra eye-candy), look at this:
    #!/usr/bin/perl use warnings; use strict; use Tk; my $mw = MainWindow->new(-title=>'Text'); my $tl = $mw->Toplevel(); $tl->withdraw; $mw->fontCreate('big', -family=>'arial', -weight=>'bold', -size => 24 ); $mw->Radiobutton(-text => "Open", -value => "open", -font => 'big', -command => \&open_it, )->pack(-anchor => 'w'); my $text = $tl->Scrolled("Text", -scrollbars => 'osw', -font =>'big', -wrap => 'none', )->pack; MainLoop; sub open_it{ open (FH,"<$0") or warn "$!\n"; my @lines = <FH>; close FH; $text->tagConfigure('greyline', -background => 'grey95'); my $toggle = -1; for (@lines) { my $greyline; if( $toggle == 1 ){ my $greyline = '' } else { $greyline = 'greyline' } $text->insert('end',"$_",$greyline); $toggle *= -1; } $tl->deiconify; $tl->raise; }

    I'm not really a human, but I play one on earth CandyGram for Mongo
Re: Open File
by moritz (Cardinal) on Jun 25, 2008 at 16:14 UTC
    A file is an (imaginary) object on disk, not a Tk widget.

    It certainly can't pop up as a window unless you construct the window and load the file into that window.

    What kind of file is that, and how would you like to display it?

    Re: Open File
    by lil_v (Sexton) on Jun 25, 2008 at 17:30 UTC
      It is a .pl file where the user enters his inputs. I could make that file a sub in the current file but the code will be just too long. I also wanted to know how to save those inputs to a text file? Thx alot guys for ur input...
        Search groups.google.com for "Tk IPC::Open3". You are not clear what the other script does, but you can launch it with some ipc (see perldoc perlipc), then grab the output and save it.

        I'm not really a human, but I play one on earth CandyGram for Mongo