|< 1 2 >| | 16 Einträge, 2 Seiten |
1 2 3 4 5 6 7 8
#!/usr/bin/perl use diagnostics; use strict; use warnings; use A; A::mach();
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
package A; use diagnostics; use strict; use warnings; use FindBin; use lib $FindBin::Bin; sub mach { machdies(); machdas(); } sub _erzeuge_modul { open(F, ">$FindBin::Bin/B.pm") or die "Unable to create B.pm:$!"; print F "sub machdies { print \"machdies\\n\" }\n"; print F "sub machdas { print \"machdas\\n\" }\n"; print F "1;\n"; close(F) or die "Unable to close Modul.pm:$!"; } BEGIN { A::_erzeuge_modul(); } # BEGIN use B; return 1;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
sub CreateFunction { my ($package, $functionName, @params, ...) = @_; no strict 'refs'; *{$package . '::' . $functionName } = sub { # content of sub, e.g. my @params = @_; print "Sub called with @params\n"; } use strict 'refs'; # optional, wenn am blockende } # CreateFunction &CreateFunction('A', 'PrintIrgendwas'); &A::PrintIrgendwas(20, 30, 40);
1 2 3 4 5 6 7 8 9 10 11 12 13
sub AUTOLOAD { my ($self, @params) = @_; if (my ($subName) = $AUTOLOAD =~ /.*::([^:])+$) { print "Building sub $subName\n"; no strict 'refs'; *{$AUTOLOAD} = sub { my @params = @_; print "Sub: @params\n"; }; goto $self->$subName(@params); } # AUTOLOAD
|< 1 2 >| | 16 Einträge, 2 Seiten |