Thread Probleme beim Testen von Class::Util (5 answers)
Opened by skirnir at 2008-10-01 12:02

renee
 2008-10-01 13:23
#115061 #115061
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Kurz zur Erklärung. Der Autor überprüft, ob es %c1:: gibt. %c1:: ist der "Stash" für das package c1. Auf einem Stash landen die (globalen) Variablen.

Wenn Du folgendes machst:

Code (perl): (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl

use strict;
use warnings;

our $test = 1;

print $::test;
greifst Du auf den Stash von main ( %:: entspricht %main::) zu.

Den Fehler kann ich mir aber nicht wirklich erklären, weil eigentlich ein Stash erzeugt wird wenn das Modul geladen wird. Wenn das Modul nicht gefunden wird, kommt aber die "Can't locate"-Meldung. Die defined-Prüfung sollte eigentlich nicht erreicht werden. Jedenfalls habe ich das mit dem load-Code nicht nachvollziehen können.

Ansonsten ist %{ $_ . '::' } unter strict (und das verwendet der Autor) nicht erlaubt, weil das symbolische Referenzen sind. Der Autor sollte hier in dem if ( $@ ) {} das strict mittels no strict 'refs' ausschalten.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread Probleme beim Testen von Class::Util