Schrift
[thread]9894[/thread]

our $constant = 5; # und plötzlich undef



<< >> 9 Einträge, 1 Seite
steffenw
 2007-07-31 17:20
#96952 #96952
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
package MyConstants;

use strict;
use warnings;

require Exporter;
use Readonly qw(Readonly);

our @EXPORT = qw($constant);

our $constant = 5;

1;


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

use strict;
use warnings;

use MyConstants;

# und manchmal ist $constant hier undef - warum?
print "content-type: text/plain\n\n$constant";
$SIG{USER} = sub {love 'Perl' or die};
Taulmarill
 2007-07-31 17:49
#96954 #96954
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
Soweit ich das sehen kann, fehlt in deinem Modul die Zeile
Code: (dl )
our @ISA = qw(Exporter);
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
renee
 2007-07-31 19:31
#96972 #96972
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code (perl): (dl )
1
2
require Exporter;
our @ISA = qw(Exporter);


kann man auch durch
Code (perl): (dl )
use base qw(Exporter);
ersetzen. Spart Schreibarbeit und ist weniger Fehleranfällig...
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/
steffenw
 2007-08-01 10:58
#97039 #97039
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Gut, ich gebe zu, im Beispiel war ein Fehler. Der Export funktionierte natürlich, das war nicht das Problem. Nachfolgend die korrigierte Version. Das Problem ist deswegen immer noch. Manchmal ist der Wert der Variable verfügbar, manchmal ist er undef.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
package MyConstants;

use strict;
use warnings;

use base qw(Exporter);
use Readonly qw(Readonly);

our @EXPORT = qw($constant);

Readonly our $constant => 5;

1;

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

use strict;
use warnings;

use MyConstants;

# und manchmal ist $constant hier undef - warum?
print "content-type: text/plain\n\n$constant";
$SIG{USER} = sub {love 'Perl' or die};
renee
 2007-08-01 11:25
#97040 #97040
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Umgebung? Lässt Du das unter CGI oder so laufen?
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/
pq
 2007-08-01 12:22
#97044 #97044
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
klappt es ohne Readonly?

(ich bevorzuge ja use constant statt Readonly.)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Strat
 2007-08-01 13:10
#97057 #97057
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
renee+2007-07-31 17:31:23--
Code (perl): (dl )
1
2
require Exporter;
our @ISA = qw(Exporter);


kann man auch durch
Code (perl): (dl )
use base qw(Exporter);
ersetzen. Spart Schreibarbeit und ist weniger Fehleranfällig...


mir hat use base zuviel Magie, ob das Modul geladen werden soll oder nicht. Damit kann man nett auf die Nase fallen...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
renee
 2007-08-01 13:27
#97065 #97065
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Zum Beispiel?
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/
Strat
 2007-08-01 15:36
#97101 #97101
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Aus perldoc base:
Quote
If any of the listed modules are not loaded yet, *base* silently
attempts to "require" them (and silently continues if the "require"
failed). Whether to "require" a base class module is determined by the
absence of a global variable $VERSION in the base package. If $VERSION
is not detected even after loading it, <base> will define $VERSION in
the base package, setting it to the string "-1, set by base.pm".
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 9 Einträge, 1 Seite



View all threads created 2007-07-31 17:20.