I used the script Rob posted a few days with the list::util option and it works. Thanks Rob!
However we also use systems we earlier versions of perl it seems. When using the same script I find that it moans about Arrays being present rather than an operator within the util.pm script. Do we use the util.pm for sum only? If so can you change your script slighty to work in the same way without using util or provide a way of getting around the issue of being on an older version of perl? Thanks in advance, Jase. On Dec 8, 2:17 am, [EMAIL PROTECTED] (John W . Krahn) wrote: > [ PLEASE! Do not top-post. ] > > [ Please remove any text not required for context. ] > > On Friday 07 December 2007 12:41, [EMAIL PROTECTED] wrote: > > > > > > > > > On Fri, 7 Dec 2007, John W.Krahn wrote: > > > > On Friday 07 December 2007 04:36,[EMAIL PROTECTED] > > > wrote: > > > >> I am not very good at perl however our systems use it and I am > > >> trying to write a few scripts to help our staff. > > > >> I am trying to calculate the average CPU utilisation from a log > > >> file which is automatically generated. > > > > I would write it something like this: > > > > use strict; > > > use warnings; > > > > my $file = $ARGV[ 0 ] || 'pickcpua.dat'; > > > > open my $CPUFILE, '<', $file or die "Unable to open '$file' $!"; > > > > my ( $total, $count ); > > > while ( <$CPUFILE> ) { > > > next unless / > > > ^ > > > (?: Mon | Tue | Wed | Thu | Fri | Sat | Sun ) > > > \s+ > > > (?: Jan | Feb | Mar | Apr | May | Jun | > > > Jul | Aug | Sep | Oct | Nov | Dec ) > > > \s+ > > > \d\d > > > \s+ > > > \d\d : \d\d : \d\d > > > \s+ > > > ( \d+ ) > > > /x; > > > $total += $1; > > > $count++; > > > } > > > > my $average = $total / $count; > > > > print "Average CPU Time for all servers in $file file is > $average\n"; > > > > __END__ > > > Hi John > > Hello Andrew, > > > If you're using Linux you could use cut in a shell script, > > I could? How would I do that, and why would I want to? > > > but if > > you're not then the following one liner will extract the column:- > > perl -alne 'print $F[4];' <data file> > > And then what? How do you get the averages from that? > > > One thing to take care with is the supposed space delimiter betwee > > the columns, > > The OP has shown us the data file and it sure looks like the columns > are separated by whitespace. What makes you think that they are not? > > > it can often be a tab character. > > Which is a whitespace character. > > > Pulling the lines > > into a file then looking at the file with the vim editor with set > > list on will highlight them. > > I don't, as a rule, use vim. So, how would you do that? > > > There are other ways to get the cilumn > > using a regular expression. > > Can you provide examples of these "other ways"? > > John > -- > use Perl; > program > fulfillment- Hide quoted text - > > - Show quoted text - -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/