1
2
$pos = wxDefaultPosition unless defined $pos;
$size = wxDefaultSize unless defined $size;
Undefined subroutine &MyFrame::anmeldung called at test.pl line 101.
use module::userv;
1
2
3
4
5
6
7
8
9
10
sub anmelden {
my ($self, $event) = @_;
my $user = $self->{text_user}->GetValue;
my $pwd = $self->{text_pwd}->GetValue;
anmeldung($user, $pwd); # Funktion in Modul
}
2010-05-27T16:30:05 MatthiasWDie Subroutine wird von deinem Modul anscheinend nicht exportiert, sodass du sie nicht so aufrufen kannst wie in deinem Beispiel.
2010-05-27T18:31:52 esskar2010-05-27T16:30:05 MatthiasWDie Subroutine wird von deinem Modul anscheinend nicht exportiert, sodass du sie nicht so aufrufen kannst wie in deinem Beispiel.
aber, dann könnte sie doch nie aufgerufen werden, oder?
2010-05-27T18:31:52 esskarich denke mal, Exportieren ist nich vom Byte-Dings-Da-Bums-Da unterstützt.
1 2 3 4 5 6 7 8 9 10
#Foo.pm package Foo; sub import { *{caller().'::foo'} = \&foo } sub foo { 'bar' } 1; # $ perl -MO=Bytecode,-H,-ofoo -E 'use Foo; say foo' # -e syntax OK # $ perl foo # bar
Gast HubbiP.S. Das Modul ist auch in Bytescode.
module::userv::anmeldung($user, $pwd);
1
2
3
4
5
6
7
8
9
10
11
12
package module::userv;
use strict;
use Wx qw[wxICON_ERROR wxICON_EXCLAMATION];
use JSON;
use Digest::MD5 qw(md5_hex);
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT = qw(pruefen anmeldung change_pwd);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
package module::userv; use strict; use Wx qw[wxICON_ERROR wxICON_EXCLAMATION]; use JSON; use Digest::MD5 qw(md5_hex); sub import { no strict 'refs'; my $caller = caller; #@EXPORT: *{"$caller\::$_"} = \&{"$_"} for qw(pruefen anmeldung change_pwd); } # import #...
2010-05-31T09:21:42 esskarschreib doch nen FIX dafür ;)
du kannst all dem umgehen, indem du auf OO umweichst!
Gast HubbiAber warum ist das so?