#!/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;