Foswiki on GitHub is open for business! Next release meeting: Monday September 15, 1300Z

Item8765: "use base qw(Somepackage);" shall not be used

Priority: CurrentState: AppliesTo: Component: WaitingFor:
Normal Closed Engine    
the use base was only intended to work alongside use fields.

perl 5.10 introduces parent.pm to fill the gap, but the safe way is to:
use Module;
our @ISA qw( Module );

Globally and manually fixing all .pm files.

perl -i -ple's/^([^#]*)use base +qw\( *(\S+) *\);/$1use $2;\n$1our \@ISA = qw( $2 );/'

+ manually checked all differences.

-- OlivierRaginel - 24 Mar 2010

Done.

Please note that mostly the only difference is that use base is evaluated at compile time, whereas our @ISA is done at runtime, which can cause issues in BEGIN blocks (but I've checked them all and fixed them where needed).

-- OlivierRaginel - 25 Mar 2010

ItemTemplate edit

Summary "use base qw(Somepackage);" shall not be used
ReportedBy OlivierRaginel
Codebase
SVN Range
AppliesTo Engine
Component
Priority Normal
CurrentState Closed
WaitingFor
Checkins
TargetRelease minor
ReleasedIn 1.1.0
Topic revision: r8 - 04 Oct 2010, KennethLavrsen
 
The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. see CopyrightStatement. Creative Commons License