Voici une version un peu nettoyée du script. A+, Christian.
#! /usr/bin/perl -w
use strict; my $cvsroot = ':pserver:[EMAIL PROTECTED]:/home/kde'; my $tmp_dir = '/tmp'; # Go to a temp dir chdir($tmp_dir); ## # Get the modules from the CVS repository ## # Get the CVSROOT/modules file from the repository `cvs -d $cvsroot checkout CVSROOT/modules`; # Read the modules in that file open MODULES, 'CVSROOT/modules' or die "Could not open CVSROOT/modules !\n"; my @modules = <MODULES>; close MODULES; # Delete that file `rm -rf CVSROOT`; # Clean up the modules @modules = grep { chomp; s/^(\S+)\s*.*$/$1/ } @modules; ## # Get the packages from the modules ## my @packages = (); foreach my $mod (@modules) { # Get the debian/control file from each module if possible `cvs -d $cvsroot checkout '$mod/debian/control' &> /dev/null`; # Read that file if (open CONTROL, "$mod/debian/control") { my @infos = <CONTROL>; close CONTROL; # Delete that file `rm -rf '$mod'`; # Find the packages in that file @infos = grep { chomp; s/^Package: (\S+)\s*$/$1/ } @infos; # Add them to the packages list push @packages, @infos; } } print "packages : @packages \n";