socrtwo has asked for the wisdom of the Perl Monks concerning the following question:
I have abandoned my silly script from before since I found there is an xls2csv function in the Spreadsheet::XLSX::Utility module. Thanks for putting up with the previous post.
Question: I'm trying to call the xls2csv function from this module but it is unexported. How does one do this properly? Right now I'm getting the error: "Tk::Error: Undefined subroutine &main::xls2csv called at name of my script.pl line 33."
I found what I thought was an answer on the Web so I tried defining the function as "Spreadsheet::XLSX::Utility::xls2csv" but that gave me basically the same error:"Tk::Error: Undefined subroutine &Spreadsheet::XLSX::Utility::xls2csv name of my script.pl line 33.
Thanks in advance. Short script is below.
#!/usr/local/bin/perl use Spreadsheet::XLSX::Utility2007; use Tk; my $mw = new MainWindow; my $mbar = $mw -> Menu(); $mw -> configure(-menu => $mbar); my $file = $mbar -> cascade(-label=>"File", -underline=>0, -tearoff => + 0); $file -> checkbutton(-label =>"Open", -underline => 0, -command => [\&menuopenClicked, "Open"]); $file -> command(-label =>"Save", -underline => 0, -command => [\&menusavedClicked, "Save"]); $file -> separator(); $file -> command(-label =>"Exit", -underline => 1, -command => sub { exit } ); MainLoop; sub menuopenClicked { my $typesopen = [ ['Excel 2007 files', '.xlsx'], ['All files', '*'],]; my $mainfilepath = $mw->getOpenFile(-filetypes => $typesop +en, -defaultextension => '.xlsx'); my $sFileName = $mainfilepath ; my $sRegion = '1-A1:G:110' ; my $iRotate = 1; my $sCsvTxt = xls2csv($sFileName, $sRegion, $iRotate); sub menusavedClicked { my $typesaved = [ ['Excel 2007 files', '.xlsx'], ['All files', '*'],]; my $saved = $mw->getSaveFile(-filetypes => $typessaved, -defaultextension => '.csv'); open($saved, "> $saved") || die "Can't create <$saved> for output!\n"; print ($saved $sCsvTxt) if $saved; close $saved; }}
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: How Do You Call a Non-Exported Function from a Module?
by almut (Canon) on Apr 10, 2009 at 22:20 UTC | |
|
Re: How Do You Call a Non-Exported Function from a Module?
by FunkyMonk (Bishop) on Apr 10, 2009 at 22:24 UTC | |
by ikegami (Patriarch) on Apr 10, 2009 at 22:42 UTC | |
by FunkyMonk (Bishop) on Apr 10, 2009 at 23:06 UTC | |
by socrtwo (Sexton) on Apr 11, 2009 at 02:51 UTC | |
|
Re: How Do You Call a Non-Exported Function from a Module?
by ikegami (Patriarch) on Apr 10, 2009 at 22:12 UTC |