1package Foo; 2 3use strict; 4require Exporter; 5require "t/lib/Foo.pm"; 6use vars qw(@ISA $VERSION); 7$VERSION = 7.254; 8 9@ISA = qw(This That What::Ever); 10 11my $foo = 42; 12 13{ 14 package Bar; 15 16 my $bar = 23; 17} 18 19sub wibble { 20 package Wibble; 21 $foo = 42; 22 return 66; 23} 24 25wibble('this is the function call'); 26{ no strict 'refs'; &{'wibble'}('this is a symref function call'); } 27Foo->wibble(42); 28{ local @ARGV = (bless {}); shift->wibble(42); } 29my $obj = bless {}; 30$obj->wibble('bar'); 31my $method = 'wibble'; 32Foo->$method; 33$obj->$method; 34$obj->$method('bar'); 35Foo->$method('bar'); 36{ 37 no strict 'subs'; 38 $Foo::obj = bless {}; 39 $Foo::obj->wibble(main::STDOUT); 40} 41my $_private = sub { 42 wibble('call inside anonymous subroutine'); 43}; 44 45require 5.004; 46use 5.004; 47require 5; 48use 5; 49use lib qw(blahbityblahblah); 50 51eval "require Text::Soundex"; 52 53sub croak { 54 require Carp; 55 Carp::croak(@_); 56 57 return sub { 58 main::wibble('call insde anon sub inside sub'); 59 require 't/lib/NotHere.pm'; 60 } 61} 62 63BEGIN { 64 require 't/lib/Bar.pm'; 65} 66 67my $mod = 't/lib/Bar.pm'; 68require $mod; 69