On Friday 07 December 2007 07:13, Rodrick Brown wrote:
>
> On Dec 7, 2007 9:45 AM, John W. Krahn <[EMAIL PROTECTED]> wrote:
> >
> > On Friday 07 December 2007 06:36, Rodrick Brown wrote:
> > >
> > > perl -nle '$total+= (split/\s+/,$_)[4]; END { printf "Avg:
> > > %.2f\n", $total/$. } ' /tmp/filename
> >
> > perl -ane'$total+=$F[4]}{printf"Avg: %.2f\n",$total/$.'
> > /tmp/filename
>
> Hi John please explain how exactly $F[4] works? how is it set?

perldoc perlrun
[ SNIP ]
       -a   turns on autosplit mode when used with a -n or -p.
            An implicit split command to the @F array is done as
            the first thing inside the implicit while loop
            produced by the -n or -p.

                perl -ane 'print pop(@F), "\n";'

            is equivalent to

                while (<>) {
                    @F = split(' ');
                    print pop(@F), "\n";
                }

            An alternate delimiter may be specified using -F.

> also the }{ brackets???

-n creates the while loop and the }{ closes the while loop and encloses 
the printf inside brackets on its own.

while ( <> ) {
    $total += $F[4]
    }
{
    printf"Avg: %.2f\n",$total/$.
    }



John
-- 
use Perl;
program
fulfillment

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


Reply via email to