The following commit has been merged in the master branch:
commit 17ae5451263121467ed9b0a45dfddc1c4336a930
Author: Guillem Jover <[email protected]>
Date:   Fri Jan 11 19:57:35 2013 +0100

    perl: Use my-style lexical loop iterator variables
    
    The variables used on a foreach loop are local to that block, so if
    we wanted to use it after the loop is finished the last value would
    be gone.
    
    Fixes Variables::RequireLexicalLoopIterators.
    
    Warned-by: perlcritic

diff --git a/dselect/methods/ftp/install b/dselect/methods/ftp/install
index d7e13ce..576aace 100755
--- a/dselect/methods/ftp/install
+++ b/dselect/methods/ftp/install
@@ -155,7 +155,7 @@ sub procpkgfile {
     my $fn = shift;
     my $site = shift;
     my $dist = shift;
-    my(@files,@sizes,@md5sums,$pkg,$ver,$fl,$nfs,$fld);
+    my (@files, @sizes, @md5sums, $pkg, $ver, $nfs, $fld);
     my(%flds);
     open(my $pkgfile_fh, '<', $fn) or die "Could not open package file $fn";
     while (%flds = getblk($pkgfile_fh), %flds) {
@@ -173,7 +173,7 @@ sub procpkgfile {
            print "Different number of filenames, sizes and md5sums for 
$flds{'package'}\n";
        } else {
            my $i = 0;
-           foreach $fl (@files) {
+           foreach my $fl (@files) {
                $pkgfiles{$fl} = [ $md5sums[$i], $sizes[$i], $site, $dist ];
                $i++;
            }
@@ -183,11 +183,11 @@ sub procpkgfile {
 }
 
 print "\nProcessing Package files...\n";
-my ($dist,$site,$fn,$i,$j);
+my ($fn, $i, $j);
 $i = 0;
-foreach $site (@{$config{site}}) {
+foreach my $site (@{$config{site}}) {
   $j = 0;
-  foreach $dist (@{$site->[2]}) {
+  foreach my $dist (@{$site->[2]}) {
     $fn = $dist;
     $fn =~ tr#/#_#;
     $fn = "Packages.$site->[0].$fn";
@@ -217,11 +217,11 @@ sub md5sum($) {
 # query user for each paritial file
 print "\nConstructing list of files to get...\n";
 my %downloads;
-my ($pkg, $dir, @info, @files, $csize, $size);
+my ($dir, @info, @files, $csize, $size);
 my $totsize = 0;
-foreach $pkg (keys(%pkgs)) {
+foreach my $pkg (keys(%pkgs)) {
     @files = @{$pkgs{$pkg}[1]};
-    foreach $fn (@files) {
+    foreach my $fn (@files) {
         #Look for a partial file
        if (-f "$dldir/$fn.partial") {
          rename "$dldir/$fn.partial", "$dldir/$fn";
@@ -288,9 +288,8 @@ if($totsize == 0) {
         yesno('n', 'Do you want to select the files to get')) {
        $totsize = 0;
        my @files = sort(keys(%downloads));
-       my $fn;
        my $def = 'y';
-       foreach $fn (@files) {
+       foreach my $fn (@files) {
            my @info = @{$pkgfiles{$fn}};
            my $csize = int($info[1] / 1024) + 1;
            my $rsize = int(($info[1] - $downloads{$fn}) / 1024) + 1;
@@ -315,9 +314,9 @@ if($totsize == 0) {
 sub download() {
 
  my $i = 0;
- my ($site, $ftp);
+ my $ftp;
 
- foreach $site (@{$config{site}}) {
+ foreach my $site (@{$config{site}}) {
 
     my @getfiles = grep { $pkgfiles{$_}[2] == $i } keys %downloads;
     my @pre_dist = (); # Directory to add before $fn
@@ -350,8 +349,8 @@ sub download() {
     $::ftp = $ftp;
     local $SIG{INT} = sub { die "Interrupted !\n"; };
 
-    my ($fn,$rsize,$res,$pre);
-    foreach $fn (@getfiles) {
+    my ($rsize, $res, $pre);
+    foreach my $fn (@getfiles) {
         $pre = $pre_dist[$pkgfiles{$fn}[3]] || '';
        if ($downloads{$fn}) {
            $rsize = ${pkgfiles{$fn}}[1] - $downloads{$fn};
@@ -420,8 +419,7 @@ if($totsize != 0) {
               if (yesno('y', "\nDo you want to retry downloading at once")) {
                  # get the first $fn that foreach would give:
                  # this is the one that got interrupted.
-               my $ffn;
-               MY_ITER: foreach $ffn (keys(%downloads)) {
+               MY_ITER: foreach my $ffn (keys(%downloads)) {
                    $fn = $ffn;
                    last MY_ITER;
                }
@@ -505,8 +503,7 @@ sub prcdeb($$) {
            print "old version\n";
            unlink $fn;
        } else { # else $ver is gt current version
-           my ($c);
-           foreach $c (@{$files{$pkg . $vers{$pkg}}}) {
+           foreach my $c (@{$files{$pkg . $vers{$pkg}}}) {
                print "replaces: $c\n";
                unlink "$vardir/methods/ftp/$dldir/$c";
            }
diff --git a/dselect/methods/ftp/setup b/dselect/methods/ftp/setup
index 26da50d..ae5d565 100755
--- a/dselect/methods/ftp/setup
+++ b/dselect/methods/ftp/setup
@@ -123,15 +123,14 @@ sub download() {
 
     my @dists = @{$_->[2]};
 
-    my $dist;
-    foreach $dist (@dists) {
+    foreach my $dist (@dists) {
        my $dir = "$dist/binary-$arch";
        print "Checking $dir...\n";
 #      if (!$ftp->pasv()) { print $ftp->message . "\n"; die 'error'; }
        my @dirlst = $ftp->ls("$dir/");
        my $got_pkgfile = 0;
-       my $line = '';
-       foreach $line (@dirlst) {
+
+       foreach my $line (@dirlst) {
            if($line =~ /Packages/) {
                $got_pkgfile=1;
            }
diff --git a/dselect/methods/ftp/update b/dselect/methods/ftp/update
index 46bbdd8..56ff35f 100755
--- a/dselect/methods/ftp/update
+++ b/dselect/methods/ftp/update
@@ -84,9 +84,8 @@ foreach (@{$config{site}}) {
                            $config{proxypassword});
 
     my @dists = @{$_->[2]};
-    my $dist;
     PACKAGE:
-    foreach $dist (@dists) {
+    foreach my $dist (@dists) {
        my $dir = "$dist/binary-$arch";
        my $must_get = 0;
        my $newest_pack_date;
@@ -238,9 +237,7 @@ EOM
 if (!$packages_modified) {
     print "No Packages files was updated.\n";
 } else {
-    my $file;
-
-    foreach $file (@pkgfiles) {
+    foreach my $file (@pkgfiles) {
        if (system('dpkg', '--merge-avail', $file)) {
            print "Dpkg merge available failed on $file";
            $exit = 1;
diff --git a/dselect/mkcurkeys.pl b/dselect/mkcurkeys.pl
index 2a70099..24f8b3d 100755
--- a/dselect/mkcurkeys.pl
+++ b/dselect/mkcurkeys.pl
@@ -88,7 +88,7 @@ for my $i (33 .. 126) {
 }
 
 ## no critic (BuiltinFunctions::ProhibitReverseSortBlock)
-for $k (sort {
+for my $k (sort {
     looks_like_number($a) ?
         looks_like_number($b) ? $a <=> $b : -1
             : looks_like_number($b) ? 1 :
diff --git a/scripts/Dpkg/Changelog.pm b/scripts/Dpkg/Changelog.pm
index d421ea8..03c28f7 100644
--- a/scripts/Dpkg/Changelog.pm
+++ b/scripts/Dpkg/Changelog.pm
@@ -530,19 +530,19 @@ sub dpkg {
     my ($self, $range) = @_;
 
     my @data = $self->get_range($range) or return;
-    my $entry = shift @data;
+    my $src = shift @data;
 
     my $f = Dpkg::Control::Changelog->new();
-    $f->{Urgency} = $entry->get_urgency() || 'unknown';
-    $f->{Source} = $entry->get_source() || 'unknown';
-    $f->{Version} = $entry->get_version() // 'unknown';
-    $f->{Distribution} = join(' ', $entry->get_distributions());
-    $f->{Maintainer} = $entry->get_maintainer() || '';
-    $f->{Date} = $entry->get_timestamp() || '';
-    $f->{Changes} = $entry->get_dpkg_changes();
+    $f->{Urgency} = $src->get_urgency() || 'unknown';
+    $f->{Source} = $src->get_source() || 'unknown';
+    $f->{Version} = $src->get_version() // 'unknown';
+    $f->{Distribution} = join(' ', $src->get_distributions());
+    $f->{Maintainer} = $src->get_maintainer() || '';
+    $f->{Date} = $src->get_timestamp() || '';
+    $f->{Changes} = $src->get_dpkg_changes();
 
     # handle optional fields
-    my $opts = $entry->get_optional_fields();
+    my $opts = $src->get_optional_fields();
     my %closes;
     foreach (keys %$opts) {
        if (/^Urgency$/i) { # Already dealt
@@ -553,16 +553,16 @@ sub dpkg {
        }
     }
 
-    foreach $entry (@data) {
+    foreach my $bin (@data) {
        my $oldurg = $f->{Urgency} || '';
        my $oldurgn = $URGENCIES{$f->{Urgency}} || -1;
-       my $newurg = $entry->get_urgency() || '';
+       my $newurg = $bin->get_urgency() || '';
        my $newurgn = $URGENCIES{$newurg} || -1;
        $f->{Urgency} = ($newurgn > $oldurgn) ? $newurg : $oldurg;
-       $f->{Changes} .= "\n" . $entry->get_dpkg_changes();
+       $f->{Changes} .= "\n" . $bin->get_dpkg_changes();
 
        # handle optional fields
-       $opts = $entry->get_optional_fields();
+       $opts = $bin->get_optional_fields();
        foreach (keys %$opts) {
            if (/^Closes$/i) {
                $closes{$_} = 1 foreach (split(/\s+/, $opts->{Closes}));
diff --git a/scripts/Dpkg/Shlibs/SymbolFile.pm 
b/scripts/Dpkg/Shlibs/SymbolFile.pm
index f9df3d5..891edad 100644
--- a/scripts/Dpkg/Shlibs/SymbolFile.pm
+++ b/scripts/Dpkg/Shlibs/SymbolFile.pm
@@ -280,15 +280,15 @@ sub output {
     my $res = '';
     foreach my $soname (sort $self->get_sonames()) {
        my @deps = $self->get_dependencies($soname);
-       my $dep = shift @deps;
-       $dep =~ s/#PACKAGE#/$opts{package}/g if exists $opts{package};
-       print $fh "$soname $dep\n" if defined $fh;
-       $res .= "$soname $dep\n" if defined wantarray;
-
-       foreach $dep (@deps) {
-           $dep =~ s/#PACKAGE#/$opts{package}/g if exists $opts{package};
-           print $fh "| $dep\n" if defined $fh;
-           $res .= "| $dep\n" if defined wantarray;
+       my $dep_first = shift @deps;
+       $dep_first =~ s/#PACKAGE#/$opts{package}/g if exists $opts{package};
+       print $fh "$soname $dep_first\n" if defined $fh;
+       $res .= "$soname $dep_first\n" if defined wantarray;
+
+       foreach my $dep_next (@deps) {
+           $dep_next =~ s/#PACKAGE#/$opts{package}/g if exists $opts{package};
+           print $fh "| $dep_next\n" if defined $fh;
+           $res .= "| $dep_next\n" if defined wantarray;
        }
        my $f = $self->{objects}{$soname}{fields};
        foreach my $field (sort keys %{$f}) {
diff --git a/test/100_critic.t b/test/100_critic.t
index d91250f..58ddeb8 100644
--- a/test/100_critic.t
+++ b/test/100_critic.t
@@ -95,6 +95,7 @@ my @policies = qw(
     Variables::ProhibitPerl4PackageNames
     Variables::ProhibitUnusedVariables
     Variables::ProtectPrivateVars
+    Variables::RequireLexicalLoopIterators
     Variables::RequireNegativeIndices
 );
 

-- 
dpkg's main repository


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to