I was wondering if anyone might be able to help me with a little PERL script? I'm very new and I have been given a task to write a simple Perl script that prints out the file names and file sizes and determines the average file size from the directory listing found in the "files.txt" file. In other words, I need to add up the size of all of the files listed in the text document and divide by the number of files listed.
Sample of "file.txt":
Expand|Select|Wrap|Line Numbers
- 12/02/2002 12:16 AM 86016 a2p.exe
- 10/10/2004 11:33 AM 393 avgfsznew.pl
- 11/01/2003 04:42 PM 38124 c2ph.bat
- 06/03/2002 03:01 AM 5484 config.pl
- 11/07/2002 10:09 PM 1338 configPPM.pl
- 07/13/2001 12:43 PM 647 crc32
- 12/02/2002 12:26 AM 1065 crc32.bat
- 12/02/2002 12:21 AM 24448 dprofpp.bat
Expand|Select|Wrap|Line Numbers
- 100 File name 1
- 1000 File name 2
- 100 File name 3
- Total files: 3 Average file size: 400 bytes
Expand|Select|Wrap|Line Numbers
- #!/usr/bin/perl
- open(MYFILE, "files")||
- die("Unable to open files.txt\n");
- my $count = 0;
- my $filetotal = 0;
- my $average = 0;
- while(<MYFILE>) {
- chomp $_;
- ($date, $time, $filesize, $filename) = split("\t", $_);
- print "$filesize\t\t$filename\n";
- $count++;
- $filetotal+=$filesize;
- }
- $average = $filetotal/$count;
- print("\nTotal Files: $count Average file size: $average bytes\n");
- close(MYFILE);
Thanks!