On Mon, Oct 24, 2005 at 11:01:53AM +0200, Mattia Dongili wrote:
>
> On Mon, October 24, 2005 9:58 am, Sven Luther said:
> [...]
> > Mattia, could you look over this code :
> >
> > chomp (my $hostversion = `uname -r`);
> > my @ramdisklist =
> > grep {
> > my $ret = system ("$_ --supported-host-version=$hostversion
> > --supported-target-version=$version 1>/dev/null 2>&1");
> > -x and (
> > $ret == 0 or (
> > $ret == 1 and (
> > (($ramdisk eq "/usr/sbin/mkinitrd") and
> > (system ("dpkg", "--compare-versions", "$version", "lt",
> > "2.6.13") == 0)) or
> > (($ramdisk eq "/usr/sbin/mkinitramfs") and
> > (system ("dpkg", "--compare-versions", "$version", "lt",
> > "2.6.12") == 1)) or
> > (($ramdisk eq "/usr/sbin/mkinitrd.yaird") and
> > (system ("dpkg", "--compare-versions", "$version", "lt",
> > "2.6.8") == 1) and
> > (system ("dpkg", "--compare-versions", "$hostversion", "lt",
> > "2.6.8") == 1))
> > )
> > )
> > )
> > }
> > (split (/ /, $ramdisk));
>
>
> you could rewrite the grep this way:
>
> my @ramdisklist =
> grep {
> -x and (
> system ("$_ --supported-host-version=$hostversion
> --supported-target-version=$version 1>/dev/null 2>&1") == 0
> or (
> (($ramdisk eq "/usr/sbin/mkinitrd") and (system ("dpkg",
> "--compare-versions", "$version", "lt", "2.6.13") == 0))
> or
> (($ramdisk eq "/usr/sbin/mkinitramfs") and (system ("dpkg",
> "--compare-versions", "$version", "lt", "2.6.12") == 1))
> or
> (($ramdisk eq "/usr/sbin/mkinitrd.yaird") and (system
> ("dpkg", "--compare-versions", "$version", "lt", "2.6.8") ==
> 1) and (system ("dpkg", "--compare-versions",
> "$hostversion", "lt", "2.6.8") == 1))
> )
> )
> }
> (split (/ /, $ramdisk));
Oh, right, altough your code disregard the fact that i need to check for two
return values of the --supported* case.
Can i do :
-x and ( my $ret = ...; $ret == 0 or ($ret == 1 and ... ))
or maybe ?
-x and { my $ret = ...; $ret == 0 or ($ret == 1 and ... )}
Friendly,
Sven Luther
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]