package hiermeinpaket; # funktioniert nur innerhalb des Pakets korrekt. sub printSth1 () { my $value=shift; print $value; } # Hm... selbes Problem...funktioniet nur innerhalb des Pakets korrekt sub printSth2 () { print $_[0]; #print $_[1]; } # Funktioniert immer, aber so umständlich. Negativvergleich aus Perfomanegründen (hier nicht wichtig). sub printSthDefinitely () { my $value= shift;   $value = shift unless ($value ne 'hiermeinpaket'); print $value; } sub intern () {   print "interner Aufruf\n"; my $text = "hello welt\n"; &printSth1 ($text); &printSth2 ($text); &printSthDefinitely ($text); } &intern (); # läuft korrekt ################################## package woanders; sub extern () { my $text = "hello welt\n"; print "\nexterner Aufruf\n"; &hiermeinpaket::printSth1 ($text);  # hui &hiermeinpaket::printSth2 ($text);  # hui &hiermeinpaket::printSthDefinitely ($text);  #hui hiermeinpaket->printSth2 ($text);  # pfui hiermeinpaket->printSthDefinitely ($text);  #hui } &extern (); # das Problem wird sichtbar. sub vonHintenDurchDieBrust () { print "\nBrustmethode\n"; my $text = "hello welt\n"; package hiermeinpaket; # HÖ-HÖ &printSth1 ($text); &printSth2 ($text); &printSthDefinitely ($text); } &vonHintenDurchDieBrust(); # TSE... alles fein?