Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Executing perl code

by pglenski (Beadle)
on Feb 13, 2013 at 18:16 UTC ( #1018592=perlquestion: print w/replies, xml ) Need Help??
pglenski has asked for the wisdom of the Perl Monks concerning the following question:

Hello I am using the module Excel::Writer::XLSX written by John McNamara. It work's great. I have written a perl script which reads a cvs file and then creates a spreadsheet. The module has many characters you can set, such as:
$worksheet = $workbook->add_worksheet(); $workbook->set_landscape() $workbook->set_freeze_panes(2,0)
I would like to populate the settings in a flat file such as:


hide_gridline(), etc

and then have my script read and execute the settings. I know this doesn't work but this is what I want it to do:
while(<IN>) { chomp; $worksheet->$_ }
Is there someway to do what I want?

Replies are listed 'Best First'.
Re: Executing perl code
by SuicideJunkie (Vicar) on Feb 13, 2013 at 18:53 UTC

    Just make sure nobody types "format c:" into that configuration script!

    A much safer way to go about it is to read the config file and look up the provided command in a hash to make sure it is legit.

    my ($cmd, @params) = split ',', <$inputFileHandle>; if (exists $hashOfAllowedCommands{$cmd}) { $worksheet->$hashOfAllowedCommands{$cmd}->(@params) }else{ print "Invalid command ignored in config file at line $.\n"; }

    If you still want to play with the dynamite then take a look into eval

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1018592]
Approved by ig
Front-paged by Corion
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (2)
As of 2017-10-18 00:50 GMT
Find Nodes?
    Voting Booth?
    My fridge is mostly full of:

    Results (239 votes). Check out past polls.