#!/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 = ;    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);