Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Accessing Getopt::Long values

by kcott (Abbot)
on Mar 25, 2013 at 05:43 UTC ( #1025230=note: print w/ replies, xml ) Need Help??


in reply to Using getopt::long and how to use the value of one of the command line options in a subroutine

G'day NewLondonPerl1,

This looks like a simple assignment to me:

#!/usr/bin/env perl use 5.010; use strict; use warnings; use Getopt::Long; my %opts; GetOptions(\%opts, qw{conf|c=s}); my $master_conf = $opts{conf}; say $master_conf;

Here it is in action:

$ pm_getopt_var.pl --conf conf_value conf_value

Depending on where you do the assignment, you may want:

$master_conf = $opts->{conf};

The only place in your posted code that you mention $master_conf is in what appears to be a standalone piece of code with no obvious connection to other parts of your script:

my $json_data = extract_json("$master_conf");

Where were you intending to declare this variable? Where were you intending to assign it a value? I suspect one problem you have here is that you can't see the wood for the trees: probably 80% of the code you've posted has nothing to do with the issue at hand. Try making a simple, cut-down version of the script; when that's working, add in more complexity.

From the code you've posted, my best guess as to what you want is something like this:

# shebang and use <whatever> lines here my $opts = getoptions(); my $master_conf = $opts->{conf}; # do something with $master_conf here (validation perhaps) my $json_data = extract_json($master_conf); my $decoded_json_obj = decode_json($json_data); # do something with $decoded_json_obj here # subroutine definitions here

-- Ken


Comment on Accessing Getopt::Long values
Select or Download Code
Re^2: Using getopt::long and how to use the value of one of the command line options in a subroutine
by NewLondonPerl1 (Acolyte) on Mar 25, 2013 at 06:16 UTC
    Thanks ever so much for your advice Ken. You are right it does make sence to break this down into smaller script first and get that working. I will try out your suggestions and try and get this working before trying to add in more complexity

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1025230]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (10)
As of 2014-07-23 08:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (136 votes), past polls