From dd2ee9c806550d0f6fb954a347d4e1952e7427cb Mon Sep 17 00:00:00 2001 From: J Pipkin Date: Sun, 13 Jan 2013 01:54:41 -0600 Subject: get_installed_packages() should only run its loop for items it is able to pull all three variables from --- SBO-Lib/lib/SBO/Lib.pm | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'SBO-Lib/lib/SBO/Lib.pm') diff --git a/SBO-Lib/lib/SBO/Lib.pm b/SBO-Lib/lib/SBO/Lib.pm index 83fbe3c..da67c22 100644 --- a/SBO-Lib/lib/SBO/Lib.pm +++ b/SBO-Lib/lib/SBO/Lib.pm @@ -260,16 +260,17 @@ sub get_installed_packages($) { my $regex = qr#/([^/]+)-([^-]+)-[^-]+-([^-]+)$#; for my $path (<$pkg_db/*>) { - my ($name, $version, $build) = ($path =~ $regex)[0,1,2]; - # valid types: STD, SBO - my $type = 'STD'; - if ($build =~ m/_SBo(|compat32)$/) { - my $sbo = $name; - $sbo =~ s/-compat32//g if $name =~ /-compat32$/; - $type = 'SBO' if get_sbo_location($sbo); - } - if ($filter eq $type or $filter eq 'ALL') { - push @installed, {name => $name, version => $version}; + if (my ($name, $version, $build) = ($path =~ $regex)[0,1,2]) { + # valid types: STD, SBO + my $type = 'STD'; + if ($build =~ m/_SBo(|compat32)$/) { + my $sbo = $name; + $sbo =~ s/-compat32//g if $name =~ /-compat32$/; + $type = 'SBO' if get_sbo_location($sbo); + } + if ($filter eq $type or $filter eq 'ALL') { + push @installed, {name => $name, version => $version}; + } } } return \@installed; -- cgit v1.2.3