(Hmmmm, this should have been posted, but I don't see it - sorry if this
actually becomes a double-posting...)

Here's the modified script.  I made some changes, as suggested, but there
was no change in the output.  I've included my entire script.  My head is 
getting mighty flat from banging it against the wall.  Oh, and I added "use
warnings;" and I haven't got a clue what I need to do to fix those.  <sigh>

I'd *LOVE* to be able to use GetOpt::Std - but I wasn't able to get it to 
look at something other than @ARGV - I need to process files on the fly 
that have the lines as delineated in __DATA__, below.  

My goals are to see if the -x option exists, and if it does get its
argument.  I also need to do certain things based on -h and -r and their
respective arguments.  This would all tied to the argument of -x (I guess
this would be the key to everything).  -x arg always exists on these lines,
while the others may or may not.  The argument to -x is the root of
everything else.  

I can see how I'd do this if I could use GetOpt::Std - is this possible 
given that it is not actually coming from the commandline?

Here's my script...  as it stands now:

#!/bin/perl -w

use warnings;
use strict;
my %cmdLine;
my %newHash;
my $DBG = 1;
my ($onceMore, $opt, $arg);

while (<DATA>) {
    chomp;

    my ($adx, $rest) = (split(/:/,$_));
    if ($DBG) {print "\$adx=\t<$adx>\n\$rest=\t<$rest>\n";}

    while (defined ($rest) && $rest ne "") {
        my ($opt, $arg, $newRest) = ($rest =~ /\s*([\-a-z]*)\s+([^ ]*)\s+(.*)/);
        $rest = $newRest;
        $cmdLine{$opt} = $arg;
    }

    # parse the final tuple...
    my ($opt, $arg, $newRest) = ($rest =~ /\s*([\-a-z]*)\s+([^ ]*)\s+(.*)/);
    $cmdLine{$opt} = $arg;

    # Build out the data structure
    my $masterKey = $cmdLine{'-x'};

    foreach my $opt (keys %cmdLine) {
        $newHash{$masterKey}{$opt} = $cmdLine{$opt};
    }
}

foreach my $masterKey (sort keys %newHash) {
    print "$masterKey\n";
    foreach my $opt (sort keys %{$newHash{$masterKey}}) {
        print "\t$opt\t" . $newHash{$masterKey}{$opt} . "\n";
    }
}


__DATA__
ten-me-900: -r timbu -x me-900 -h ten-me-900
hidit: -r tenbu -x networks-users -h hidit
postal: -x direct -h postal
pickit: -h pickit -x uncrp -r oakd




-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to