Thread Zugriff auf Routinen verhindern?
(9 answers)
Opened by Gast at 2008-05-27 14:39
Soll nur aus dem Package heraus die Subroutinen zugegriffen werden?
Zur Not kann man es so machen: Code (perl): (dl
)
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 31 32 33 34 #!/usr/bin/perl use strict; use warnings; { package MyTest; sub new { print "(new) erlaubt\n"; print "rufe test() auf\n"; test(); print "test() wurde aufgerufen\n"; } sub test { my @info = caller(0); if( $info[0] ne __PACKAGE__ ) { print "(test) nicht erlaubt: Aufruf aus Package $info[0]\n"; } else{ print "(test) erlaubt\n"; } } } package main; print "rufe new() aus main auf\n"; MyTest->new; print "rufe test() aus main auf\n"; MyTest->test; Edit: Oder wie pq es gesagt hat: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #!/usr/bin/perl use strict; use warnings; { package MyTest; my $test; sub new { $test->(); } $test = sub { print "(test) erlaubt\n"; } } package main; MyTest->new; Da $test eine lexikalische Variable ist, kann man nicht "von außen" zugreifen. 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/ |