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]