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]