the list is a list of files by version. I need to keep the last 5 versions.

Jeff's code works fine except I am getting some empty strings at the beginning 
that I have not figured out.

Here is what I have so far. Lines 34 and 39 are provide a print out for 
troubleshooting. Once I get this fixed all I
need to do is shift the top five from the list and unlink the rest.

#!/usr/bin/perl

use warnings;
use strict;

opendir (REPOSITORY, '/usr/local/repository/dists/');
my @repositories = readdir (REPOSITORY);
closedir (REPOSITORY);

my $packageRepo;
my @values;
my @newValues;
foreach (@repositories)
{
        $packageRepo = $_;
        chomp ($packageRepo);
        opendir (packageREPO, 
"/usr/local/repository/dists/$packageRepo/non-free/binary-i386");
        my @repoFiles = readdir (packageREPO);
        close (packageREPO);
        foreach (@repoFiles)
        {
                my $fileName = $_;
                chomp ($fileName);
                if ( /(.*)(([0-9][0-9])(-special)?\.([0-9])(-)([0-9]*))(.*)/)
                {
                        push (@values, $2);
                }
        }
        my %h;
        foreach (@values) 
        {
                push (@newValues, $_) unless $h{$_}++
        }
foreach (@newValues){print "$_\n";}
        my @new = map { $_->[0] } 
        sort { $b->[1] <=> $a->[1] } 
        map { [$_,(split/-/)[-1]] } 
        @newValues;
        print "@new[0..4]\n";
}


Or for a line numbered version
http://rafb.net/p/asqgJo27.html

Tony Heal



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


Reply via email to