Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
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 contemplating the Monastery: (9)
As of 2015-07-06 08:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (70 votes), past polls