On Wed, Jul 29, 2009 at 08:56:19AM -0400, Aron Griffis wrote:
Richard W.M. Jones wrote: [Tue Jul 28 2009, 02:03:03PM EDT]
> + foreach my $bin (@_initrd_binaries) {
> + if (-f "$dir/bin/$bin") {
> + open PIPE, "file $dir/bin/$bin |";
> + local $/ = undef;
> + $_ = <PIPE>;
> + if (/ELF.*executable, (.+?),/) {
> + return _elf_arch_to_canonical ($1);
> + }
> + }
> + }
It might be (ever so) slightly better here to use Perl's backtick
operator to slurp the output rather than declaring $/ local prior
to calling a function in the same block:
foreach my $bin (@_initrd_binaries) {
if (-f "$dir/bin/$bin") {
$_ = `file $dir/bin/$bin`;
if (/ELF.*executable, (.+?),/) {
return _elf_arch_to_canonical ($1);
}
}
}
Yup, this is better, or even putting local $/ part into its
own block:
{ local $/ = undef; $_ = <PIPE>; }
I'll rustle up a fix.
Rich.
--
Richard Jones, Emerging Technologies, Red Hat
http://et.redhat.com/~rjones
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into Xen guests.
http://et.redhat.com/~rjones/virt-p2v