File: TestModule.pm

package info (click to toggle)
perl 5.24.1-3%2Bdeb9u7
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 107,108 kB
  • sloc: perl: 559,649; ansic: 293,918; sh: 67,316; pascal: 7,632; cpp: 3,895; makefile: 2,436; xml: 2,410; yacc: 989; sed: 6; lisp: 1
file content (31 lines) | stat: -rw-r--r-- 1,020 bytes parent folder | download | duplicates (7)
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
package TestModule;

use strict;
require Exporter;
use vars qw(@EXPORT @EXPORT_OK @ISA $IMPORTED);

@ISA        = qw(Exporter);
@EXPORT     = qw(func2);
@EXPORT_OK  = qw(func1);

### test if import gets called properly
sub import   { $IMPORTED = 1; 
               ### this breaks on 5.8.[45] which have a bug with goto's losing
               ### arguments in @_. This is the cause of the 0.14 tester failures
               ### under 5.8.[45]. The bug is NOT in exporter, but core perl:
               ### http://testers.cpan.org/show/Module-Load.html
               #goto &Exporter::import; 
               
               ### instead, use the undocumented, but widely used $ExportLevel
               ### which will make sure we pass all arguments, and even works
               ### on buggy 5.8.[45]
               do { local $Exporter::ExportLevel += 1; Exporter::import(@_) }
             }
             
sub imported { $IMPORTED;       }

sub func1    { return "func1";  }

sub func2    { return "func2";  }

1;