Changeset 162 for trunk/soft/ObsData/ObsData/Archive.pm
- Timestamp:
- 12/18/05 16:20:50 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/soft/ObsData/ObsData/Archive.pm
- Property cvs2svn:cvs-rev changed from 1.12 to 1.13
r161 r162 5 5 use strict; 6 6 use warnings; 7 use ObsData::Archive::FlatFile;8 use ObsData::Archive::Compressed;9 use ObsData::Archive::Tar;10 use ObsData::Archive::Zip;11 use ObsData::Archive::Rar;7 require ObsData::Archive::FlatFile; 8 require ObsData::Archive::Compressed; 9 require ObsData::Archive::Tar; 10 require ObsData::Archive::Zip; 11 require ObsData::Archive::Rar; 12 12 13 13 our $CVSID = q$Id$; … … 15 15 16 16 my $error = {}; 17 18 my @dynload = (); 19 20 sub register { 21 my ($rule, $class, $priority) = @_; 22 push( 23 @dynload, 24 { 25 rule => $rule, 26 class => $class, 27 priority => $priority, 28 } 29 ); 30 1; 31 } 17 32 18 33 sub new { … … 36 51 37 52 for ($archive) { 38 /\.tar(\.[^\.]*)?$/ and do { 39 $beclass = 'Tar'; 40 last; 41 }; 42 /\.(gz|bz2|Z)$/ and do { 43 $beclass = 'Compressed'; 44 last; 45 }; 46 /\.zip$/ and do { 47 $beclass = 'Zip'; 48 last; 49 }; 50 /\.rar$/ and do { 51 $beclass = 'Rar'; 52 last; 53 }; 54 $beclass = 'FlatFile'; 53 foreach my $r (sort { $a->{priority} <=> $b->{priority} } @dynload) { 54 if (ref($r->{rule}) eq 'CODE' ? 55 $r->{rule}->($_) : 56 /$r->{rule}/) { 57 $beclass = $r->{class}; 58 last; 59 } 60 } 55 61 } 56 62
Note: See TracChangeset
for help on using the changeset viewer.