On 4/27/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> yes I agree I was a little ambiguous... I was in a hurry. sorry.  Anyway
> here is my updated code. and here is a sample output:
> My goal is to get all F01 which I am but I am having issues capturing all
> of these values into my array.  When I run the I get the data I want to see
> which is just the F01 column, but when I comment out line 14 and uncomment
> line 15 and uncomment line 21 I see no data in the array???
> In the end I want the F01 column and the % column.
> 
> thank you,
> 
> derek
> 
>  1     2005/01/20 15:39   17   2%  -il-o-b- - - - -  sg F01000
>    2     2005/01/20 15:53   14   1%  -il-o-b-----  sg F01001
>    3     2005/01/18 09:53    2   0%  -il-o-b-----  sg F01002
>    4     2005/02/04 16:41  196 100%  -il-o-b----f  sg F01003
>    5     2005/02/05 21:13  305 100%  -il-o-b----f  sg F01004
>    6     2005/02/28 22:47  180 100%  -il-o-b-----  sg F01005
>   13     2005/02/08 16:07  112 100%  -il-o-b----f  sg F01006
>   14     2005/02/09 21:56  122 100%  -il-o-b----f  sg F01007
>   15     2005/02/11 10:51  147 100%  -il-o-b----f  sg F01008
>   16     2005/02/13 11:35  193 100%  -il-o-b----f  sg F01009
>   17     2005/02/14 23:46   79 100%  -il-o-b- - - -f  sg F01010
> 
> #!/usr/bin/perl
> 1> use strict;
> 2> use warnings;
> 3> $ENV{"PATH"} =
> qq(/opt/SUNWsamfs/sbin:/usr/bin:/usr/sbin:/usr/local/log);
> 4> open (V4, "samcmd v4 2>\&1 |" ) || die "unable to open pipe... Broken?
> $!";
> 5> my @fa =();
> 6> my @ha =();
> 7> my $i =0;
> 8>        foreach (<V4>) {
> 9>               local $, = "\n";
> 10>              #print +(split)[6,7], $,;
> 11>              s <sg> ();
> 12>              s {\-*} ()g;
> 13>                s {\w+} ()i;
> 14>                print +(split)[5,6,7], if (m/f01(\d+)/gi )
> 15>               #$fa[$i++] = +(split)[5,6,7] if (m/f01(\d+)/gi );
> 16>               #print +(split)[4],$,; #% column
> 17>      }
> 18> close (V4);
> 19> print "\n";
> 20> print "Now printing array element 0\t", $fa[0], "\n";
> 21> #print "Now printing entire array \t", @fa, "\n";
> 22> print "Now printing array count \t", $#fa, "\n";
> 
> Derek B. Smith
> OhioHealth IT
> UNIX / TSM / EDM Teams
> 
>              "Ing. Branislav
>              Gerzo"
>              <[EMAIL PROTECTED]>                                           To
>                                        beginners@perl.org
>              04/27/2005 02:46                                           cc
>              AM
>                                                                    Subject
>                                        Re: REGEXP
> 
> [EMAIL PROTECTED] [D], on Tuesday, April 26, 2005 at 17:12
> (-0400) made these points:
> 
> D> s/sg//, s/\- {1,}(\w{1,})//,print +(split)[5,6,7], if (m/f01(\d+)/gi )
> 
> I think no one replied to you because we don't know what should be
> output.
> 

If all you want is the last column, this is a really long way to go about it.

    while (<V4>) {
        print (split)[7];
        print "\n";
}

If you want to do output redierection using the shell, you could just
do it on the command line:

    perl -lane 'print $F[7]' `samcmd v4 2>\&1`

See perldoc perlrun for details.  In any case, don't mess with the
builtins (i.e. $,).  If you want a "\n", print a "\n".  Also,

    s {\-*} ()g;

is not a valid substitution statement.

    s{\-*}()g;

is a valid statement.  Notice the lack of spaces.  Moving on:

    4> open (V4, "samcmd v4 2>\&1 |" ) || die "unable to open pipe...
Broken?$!";

Don't do this.  the precedence of || is too high.  your code attempts
to open a pipe, and if it can't, then it attempts to open "die..." and
starts throwing exceptions.  You want:

    open (V4, "samcmd v4 2>\&1 |" ) or die "unable to open pipe... Broken?$!";

This should be enough to get you started.  On the whole, though, I'd
seriously recommend that you pick up a copy of a good intro perl book
(_Learning Perl_ springs to mind), and read the FAQ for this group on
how to identify (bad) examples of Perl 4 code, which it seems you've
been looking at.

HTH,

Jay

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to