Thread GZip mit Perl?! (7 answers)
Opened by [HR]Doomrunner at 2004-01-28 10:52

Crian
 2004-01-28 11:46
#79607 #79607
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Nönö, da gibts ein schönes Modul: Archive::Zip

Ich hab hier auch gerade ein Beispielprogramm:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/perl
use strict;
use warnings;

use Archive::Zip;
use File::Find;

# Arbeitspfad, diesen ggf. anpassen:
my $pfad = "c:/daten/perl";

# zum angegebenen Pfad wechseln:
chdir $pfad or die "chdir nach '$pfad' nicht moeglich: $!";

# Zip-Objekt erstellen:
my $zip  = Archive::Zip->new();

# 2 Programme aus dem Verzeichnis ins Archiv hinzufügen:
$zip->addFile("./port_check.pl");
$zip->addFile("./pack_check.pl");

# Alle Dateien (mit Unterverzeichnissen) in ./Check/ finden:
my @Dateien;
find( sub {push @Dateien, $File::Find::name}, "./Check/" );

# Alle diese Dateien und Verzeichnisse hinzufügen (das erste ist ./Check/):
for (@Dateien) {
   if (-d) {
       $zip->addDirectory($_);
   }
   else {
       $zip->addFile($_);
   }
}

# Archivnamen bestimmen:
my $zipname = 'check_V';
{
   open CHECK, './Check/Check.pm' or die "Kann './Check/Check.pm' nicht oeffnen: $!";
   my @checkinhalt = <CHECK>;
   close CHECK or die "Kann './Check/Check.pm' nicht schliessen: $!";
   (my $v) = grep s~^\s*my\s+\$Version\s*=\s*'([.\d]+[a-z]?)'\s*;\s*$~$1~, @checkinhalt;
   $zipname .= $v;
}
$zipname .= '.zip';

# Archiv schreiben:
$zip->writeToFileNamed($zipname);


Der Teil zum ermitteln des Archivnamens dürfte für Dich unwichtig sein, da hole ich die Versionsinformation aus einem wichtigen Modul und übernehme dessen Version für das Zip-File. Aber der Rest dürfte Dir zusammen mit

perldoc Archive::Zip

weiterhelfen.\n\n

<!--EDIT|Crian|1075283498-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite

View full thread GZip mit Perl?!