Thread Problem mit version (11 answers)
Opened by bianca at 2010-11-29 19:11

bianca
 2010-11-29 19:11
#143193 #143193
User since
2009-09-13
7016 Artikel
BenutzerIn

user image
Guten Abend!
Habe hier eine etwas merkwürdige Situation, die ich mir nicht erklären kann und bitte Euch um Hilfe.

Folgendes Script:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/perl -w
use strict;
use warnings;
use IO::Handle;
STDOUT -> autoflush (1);
use version;

my ($inst,@modules);
eval 'use ExtUtils::Installed; $inst = ExtUtils::Installed -> new (); @modules = $inst -> modules ();';
if (scalar @modules) {
    my $zeile = 0;
    for my $modul (sort {lc $a cmp lc $b} @modules) {
        print "Bearbeite Modul '$modul' und versuche, Version zu ermitteln\n";
        my $version = $inst -> version ($modul);
        print "Version von '$modul': $version\n" if !defined $version || $version eq '' || $modul eq 'Class::Std' || $modul eq 'version';
    }
}


Dieses Script läuft bei mir unter Windows XP und Win 7 jeweils mit aktuellem Strawberry problemlos und ohne zu murren durch.

Auf einem Linux mit Perl v5.8.5 built for i686-linux bekomme ich folgende Ausgabe:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Bearbeite Modul 'Algorithm::C3' und versuche, Version zu ermitteln
Bearbeite Modul 'Algorithm::Diff' und versuche, Version zu ermitteln
Bearbeite Modul 'AppConfig' und versuche, Version zu ermitteln
Bearbeite Modul 'Archive::Tar' und versuche, Version zu ermitteln
Bearbeite Modul 'Archive::Zip' und versuche, Version zu ermitteln
Bearbeite Modul 'Array::Compare' und versuche, Version zu ermitteln
Bearbeite Modul 'Authen::SASL' und versuche, Version zu ermitteln
Bearbeite Modul 'B::Hooks::EndOfScope' und versuche, Version zu ermitteln
Bearbeite Modul 'Bit::Vector' und versuche, Version zu ermitteln
Bearbeite Modul 'Carp::Clan' und versuche, Version zu ermitteln
Bearbeite Modul 'CGI' und versuche, Version zu ermitteln
Bearbeite Modul 'CGI::IDS' und versuche, Version zu ermitteln
Bearbeite Modul 'Class::Accessor' und versuche, Version zu ermitteln
Bearbeite Modul 'Class::C3' und versuche, Version zu ermitteln
Bearbeite Modul 'Class::Data::Inheritable' und versuche, Version zu ermitteln
Bearbeite Modul 'Class::MOP' und versuche, Version zu ermitteln
Bearbeite Modul 'Class::Singleton' und versuche, Version zu ermitteln
Bearbeite Modul 'Class::Std' und versuche, Version zu ermitteln
Invalid version format (version required) at test.pl line 15.


Das erweckt auf mich den Eindruck als gäbe es ein Problem mit der Versionsermittlung für Class::Std. Auf Win ist das jedoch kein Problem, da kommt als Version die 0.011 heraus.

Das Modul version ist sowohl auf Linux als auch auf Windows überall die 0.86.
Jemand eine Idee, warum nur auf Linux die Sache an der Stelle mit Invalid version format (version required) at test.pl line 15 abbricht?

Vielen Dank

Edit: Ergänzend möchte ich noch sagen, dass ich das Modul Class::Std extra auf den beiden Win-Kisten nachinstalliert habe in der Hoffnung, die Fehlersituation nachstellen und eine Lösung finden zu können. Klappt aber nicht. Der Fehler tritt unter Windows nicht auf. Warum nicht?

Noch ein Hinweis: Auf Linux war vorher das Modul version in der Version 0.74 installiert und diese hatte seinerzeit für Class::Std die Versionsnummer 0.0.9 ermittelt ohne Fehler.
Class::Std wurde auf dem Linux nicht geupdatet, nur version wurde auf 0.86 angehoben. Kann es sein, dass version nun die 0.0.9 nicht mehr als gültige Version erkennt?
Last edited: 2010-11-29 19:18:19 +0100 (CET)
10 print "Hallo"
20 goto 10

View full thread Problem mit version