Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use RPM::Header::PurePerl;
- use XML::Simple qw(:strict);
- use Data::Dumper;
- use Test::More tests => 1;
- use Test::Benchmark;
- use IO::Uncompress::Gunzip qw(gunzip $GunzipError) ;
- use File::Spec;
- use warnings;
- use strict;
- opendir(DIR, ".");
- my @files = readdir(DIR);
- closedir(DIR);
- @files = File::Spec->no_upwards( @files );
- my $input = "repodata/primary.xml.gz";
- my $output = "repodata/primary.xml";
- gunzip $input => $output
- or die "gunzip failed: $GunzipError\n";
- my $ref = XMLin($output, ForceArray => 1, KeyAttr => [ ]);
- #test_xml($ref);
- is_faster(2,-5, sub { test_xml($ref) }, sub { test_rpm(@files) },"XML is faster than RPM");
- sub test_xml {
- my ($my_ref) = @_;
- print "Test XML\n";
- #print Dumper($my_ref);
- for (my $count = 0; $count <= 216; $count++) {
- print "Unknown 1147, 8\n";
- print $my_ref->{package}->[$count]->{name}->[0]."\n";
- print $my_ref->{package}->[$count]->{version}->[0]->{ver}."\n";
- print $my_ref->{package}->[$count]->{version}->[0]->{rel}."\n";
- print $my_ref->{package}->[$count]->{description}->[0]."\n\n";
- }
- }
- sub test_rpm {
- my @my_files = @_;
- my ($file);
- print "Test RPM\n";
- foreach $file (@my_files) {
- #print "${file}\n";
- tie my %rpm, "RPM::Header::PurePerl", $file
- or die "Problem, could not open rpm";
- print "$rpm{'NAME'}\n";
- print "$rpm{'VERSION'}\n";
- print "$rpm{'RELEASE'}\n";
- print "$rpm{'DESCRIPTION'}->[0]\n\n";
- }
- }
Add Comment
Please, Sign In to add comment