V-0.15/000755 000766 000024 00000000000 14047245122 012252 5ustar00abetimstaff000000 000000 V-0.15/Changes000644 000766 000024 00000014036 14047245113 013551 0ustar00abetimstaff000000 000000 Changes on 2021-05-13 for repository at: Fetch URL: git@github.com:abeltje/V Push URL: git@github.com:abeltje/V Enjoy! 0.15 2021-05-13T17:48:24+02:00 (9235683 => Abe Timmerman) - (Abe Timmerman, 3 seconds ago) Autocommit for distribution V 0.15 (minor) 0.14_01 2021-05-12T18:52:57+02:00 (33bea16 => Abe Timmerman) - (Abe Timmerman, 23 hours ago) Autocommit for distribution V 0.14_01 (test) 0.14 2021-05-11T10:09:04+02:00 (3819d91 => Abe Timmerman) - (Abe Timmerman, 2 days ago) Autocommit for distribution V 0.14 (minor) - (Abe Timmerman, 23 hours ago) Update our tester-module - After reading the Test::Warnings docs (again) the CPANTesters errors - were to be expected 0.13_04 2021-05-11T01:30:36+02:00 (4e1e942 => Abe Timmerman) - (Abe Timmerman, 3 days ago) Autocommit for distribution V 0.13_04 (test) 0.13_03 2021-05-10T18:39:36+02:00 (32ae160 => Abe Timmerman) - (Abe Timmerman, 3 days ago) Autocommit for distribution V 0.13_03 (test) - (Abe Timmerman, 3 days ago) Fix more things for MSWin32 0.13_02 2021-05-06T23:37:12+02:00 (f6f9add => Abe Timmerman) - (Abe Timmerman, 7 days ago) Autocommit for distribution V 0.13_02 (same) - (Abe Timmerman, 3 days ago) Update the (test)dependencies for t::Test::abeltje. 0.13_01 2021-05-06T00:16:18+02:00 (d7f4f5f => Abe Timmerman) - (Abe Timmerman, 8 days ago) Autocommit for distribution V 0.13_01 (test) - (Abe Timmerman, 7 days ago) Introduce t::Test::abeltje - This needed some kwalitee changes, mostly in POD 0.00_00 2003-03-09T23:16:24+00:00 (fc60a31 => abeltje) - (abeltje, 18 years ago) Create space for the V module - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@64 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 18 years ago) Initial import of V-0.06 - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@65 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 18 years ago) Change the way we C<< use lib $lib; >> for Test-More - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@66 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 18 years ago) $VERSION += 0.01 - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@67 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 18 years ago) $VERSION += 0.01 - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@68 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 18 years ago) * [REMOVE] No more Test::More, make it a PREREQ - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@70 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 18 years ago) * [FIX] make the tests pass again - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@71 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 18 years ago) * [CHANGE] - general cleanup and $VERSION += 0.01 - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@72 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 18 years ago) * [PRIVATE] do the ChangeLog/Changes dance - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@73 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 17 years ago) * [FIX] by Merijn Brand - fix a syntax error in the PREREQ_PM target - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@74 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 17 years ago) * [ADD] - feature request by Merijn Brand: - Can you add a sub that returns the version only for a given module - added a test for V::get_version - VERSION += 0.01 - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@75 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 17 years ago) * regen Changes for 0.09 - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@76 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 17 years ago) * [CHANGE] - added the license stuff - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@77 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 17 years ago) * Regen Changes for 0.10 - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@78 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 15 years ago) * [CHANGE] - add untainting stuff by Stas Bekman (2004/03/24) - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@79 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 15 years ago) * Regenerate Changes for V 0.11 - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@80 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 15 years ago) * [PRIVATE] - redo 01basic.t for core - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@82 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 15 years ago) * [CHANGE] - small rework of the AUTHOR/LICENSE sections in pod - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@83 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 15 years ago) * [CORE] - put the tests for the core-distribution in their own directory - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@84 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 14 years ago) * [CHANGE] - FIX: bug reported by Merijn: - my $version = map { "$_ " . V::get_version( $_ ) } qw/ Cwd /; - "Modification of a read-only value attempted" - local()ize $_ before reading the file to find the version - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@85 03e79c58-f747-0410-a819-f71e7ca513d9 - (abeltje, 14 years ago) * Regenerate Changes for V 0.13 - git-svn-id: https://source.test-smoke.org/repos/cpan/trunk/V@86 03e79c58-f747-0410-a819-f71e7ca513d9 - (Abe Timmerman, 8 days ago) Fix bug with v-strings and update repository - Whenever a module used a v-string-version the module would return undef, - we now use the core module 'version' to make sure we also return a - version for these cases. - - Moved V.pm to the lib/ directory - - Moved README to README.md and added some markdown - - added a .gitignore and MANIFEST.SKIP - (Abe Timmerman, 8 days ago) Fix test to also run under 'prove' V-0.15/MANIFEST000644 000766 000024 00000000633 14047245122 013405 0ustar00abetimstaff000000 000000 Changes lib/V.pm Makefile.PL MANIFEST This list of files MANIFEST.SKIP README.md t/01basic.t t/02useit.t t/03bug.t t/04v_version.t t/lib/V_Version.pm t/Test/abeltje.pm xt/00-manifest.t xt/01-compile.t xt/02-pod_syntax.t xt/03-pod-coverage.t META.yml Module YAML meta-data (added by MakeMaker) META.json Module JSON meta-data (added by MakeMaker) V-0.15/t/000755 000766 000024 00000000000 14047245122 012515 5ustar00abetimstaff000000 000000 V-0.15/xt/000755 000766 000024 00000000000 14047245122 012705 5ustar00abetimstaff000000 000000 V-0.15/README.md000644 000766 000024 00000002362 14046435466 013547 0ustar00abetimstaff000000 000000 # **V** version 0.14 This module uses stolen code from [`Module::Info`](https://metacpan.org/pod/Module::Info) to find the location and version of the specified module(s). It prints them and exit()s. It works by definening `import()` and is based on an idea from Michael Schwern on the perl5-porters list. See [the discussion](https://www.nntp.perl.org/group/perl.perl5.porters/2002/01/msg51007.html) ``` $ perl -MV=CPAN ``` or if you want more than one package ``` $ perl -MV=CPAN,V ``` # INSTALLATION To install this module type the following commands: - `perl Makefile.PL` - `make test` - `make install` # DEPENDENCIES This module requires no other modules or libraries (exept [`Test::More`](https://metacpan.org/pod/Test::More) for the test-suite). # SEE ALSO To get more info on the programming interface see [`perldoc V`](https://metacpan.org/pod/V) # COPYRIGHT © 2002 Abe Timmerman . All rights reserved. # LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. V-0.15/MANIFEST.SKIP000644 000766 000024 00000000143 14046435466 014161 0ustar00abetimstaff000000 000000 \..+\.swp$ MYMETA\. \.git \.git(ignore|attributes) core-t/ Makefile$ Makefile.bak pm_to_blib blib/ V-0.15/META.yml000644 000766 000024 00000001262 14047245122 013524 0ustar00abetimstaff000000 000000 --- abstract: 'Print version of the specified module(s).' author: - 'Abe Timmerman ' build_requires: Test::Fatal: '0' Test::More: '0' Test::Warnings: '0' configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 1 generated_by: 'ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.143240' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: V no_index: directory: - t - inc requires: perl: '5.010001' version: '0.77' resources: homepage: https://github.com/abeltje/V repository: https://github.com/abeltje/V.git version: '0.15' x_IRC: irc://irc.perl.org/#amsterdam.pm V-0.15/lib/000755 000766 000024 00000000000 14047245122 013020 5ustar00abetimstaff000000 000000 V-0.15/Makefile.PL000644 000766 000024 00000001477 14046435466 014250 0ustar00abetimstaff000000 000000 #! usr/bin/perl -w use v5.10.1; use strict; use ExtUtils::MakeMaker; WriteMakefile( NAME => 'V', VERSION_FROM => 'lib/V.pm', ABSTRACT_FROM => 'lib/V.pm', AUTHOR => 'Abe Timmerman ', BUILD_REQUIRES => { 'Test::More' => 0, 'Test::Fatal' => 0, 'Test::Warnings' => 0, }, PREREQ_PM => { 'version' => 0.77 }, MIN_PERL_VERSION => '5.010001', LICENSE => 'perl_5', META_ADD => { 'meta-spec' => { version => 2 }, 'resources' => { homepage => 'https://github.com/abeltje/V', repository => { type => 'git', url => 'https://github.com/abeltje/V.git', }, }, 'x_IRC' => 'irc://irc.perl.org/#amsterdam.pm', }, ); V-0.15/META.json000644 000766 000024 00000002262 14047245122 013675 0ustar00abetimstaff000000 000000 { "abstract" : "Print version of the specified module(s).", "author" : [ "Abe Timmerman " ], "dynamic_config" : 1, "generated_by" : "ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.143240", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : 2 }, "name" : "V", "no_index" : { "directory" : [ "t", "inc" ] }, "prereqs" : { "build" : { "requires" : { "Test::Fatal" : "0", "Test::More" : "0", "Test::Warnings" : "0" } }, "configure" : { "requires" : { "ExtUtils::MakeMaker" : "0" } }, "runtime" : { "requires" : { "perl" : "5.010001", "version" : "0.77" } } }, "release_status" : "stable", "resources" : { "homepage" : "https://github.com/abeltje/V", "repository" : { "type" : "git", "url" : "https://github.com/abeltje/V.git" } }, "version" : "0.15", "x_IRC" : "irc://irc.perl.org/#amsterdam.pm" } V-0.15/lib/V.pm000644 000766 000024 00000013224 14047245107 013570 0ustar00abetimstaff000000 000000 package V; use strict; use vars qw( $VERSION $NO_EXIT ); $VERSION = '0.15'; $NO_EXIT ||= 0; # prevent import() from exit()ing and fall of the edge =head1 NAME V - Print version of the specified module(s). =head1 SYNOPSIS $ perl -MV=V or if you want more than one $ perl -MV=CPAN,V Can now also be used as a light-weight module for getting versions of modules without loading them: require V; printf "%s has version '%s'\n", "V", V::get_version( "V" ); If you want all available files/versions from C<@INC>: require V; my @all_V = V::Module::Info->all_installed("V"); printf "%s:\n", $all_V[0]->name; printf "\t%-50s - %s\n", $_->file, $_->version for @all_V; Each element in that array isa C object with 3 attributes and a method: =over =item I B The package name. =item I B Full filename with directory. =item I B The base directory (from C<@INC>) where the package-file was found. =item I B This method will look through the file to see if it can find a version assignment in the file and uses that determine the version. As of version 0.13_01, all versions found are passed through the L module. =back =head1 DESCRIPTION This module uses stolen code from L to find the location and version of the specified module(s). It prints them and exit()s. It defines C and is based on an idea from Michael Schwern on the perl5-porters list. See the discussion: https://www.nntp.perl.org/group/perl.perl5.porters/2002/01/msg51007.html =head2 V::get_version($pkg) Returns the version of the first available file for this package as found by following C<@INC>. =head3 Arguments =over =item 1. $pkg The name of the package for which one wants to know the version. =back =head3 Response This C returns the version of the file that was first found for this package by following C<@INC> or C if no file was found. =begin implementation =head2 report_pkg This sub prints the results for a package. =head3 Arguments =over =item 1. $pkg The name of the package that was probed for versions =item 2. @versions An array of Module-objects with full path and version. =back =end implementation =head1 AUTHOR Abe Timmerman C<< >>. =head1 COPYRIGHT & LICENSE Copyright 2002-2006 Abe Timmerman, All Rights Reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. =cut sub report_pkg($@) { my $pkg = shift; print "$pkg\n"; @_ or print "\tNot found\n"; for my $module ( @_ ) { printf "\t%s: %s\n", $module->file, $module->version || '?'; } } sub import { shift; @_ or push @_, 'V'; for my $pkg ( @_ ) { my @modules = V::Module::Info->all_installed( $pkg ); report_pkg $pkg, @modules; } exit() unless $NO_EXIT; } sub get_version { my( $pkg ) = @_; my( $first ) = V::Module::Info->all_installed( $pkg ); return $first ? $first->version : undef; } caller or V->import( @ARGV ); 1; # Okay I did the AUTOLOAD() bit, but this is a Copy 'n Paste job. # Thank you Michael Schwern for Module::Info! This one is mostly that! package V::Module::Info; require File::Spec; sub new_from_file { my($proto, $file) = @_; my($class) = ref $proto || $proto; return unless -r $file; my $self = {}; $self->{file} = File::Spec->rel2abs($file); $self->{dir} = ''; $self->{name} = ''; return bless $self, $class; } sub all_installed { my($proto, $name, @inc) = @_; my($class) = ref $proto || $proto; @inc = @INC unless @inc; my $file = File::Spec->catfile(split m/::/, $name) . '.pm'; my @modules = (); foreach my $dir (@inc) { # Skip the new code ref in @INC feature. next if ref $dir; my $filename = File::Spec->catfile($dir, $file); if( -r $filename ) { my $module = $class->new_from_file($filename); $module->{dir} = File::Spec->rel2abs($dir); $module->{name} = $name; push @modules, $module; } } return @modules; } # Thieved from ExtUtils::MM_Unix 1.12603 sub version { my($self) = shift; my $parsefile = $self->file; local *MOD; open(MOD, $parsefile) or die $!; my $inpod = 0; my $result; local $_; while () { $inpod = /^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $inpod; next if $inpod || /^\s*#/; chomp; next unless m/([\$*])(([\w\:\']*)\bVERSION)\b.*\=/; { local($1, $2); ($_ = $_) = m/(.*)/; } # untaint my $eval = qq{ package V::Module::Info::_version; no strict; local $1$2; \$$2=undef; do { $_ }; \$$2 }; local $^W = 0; $result = eval($eval); warn "Could not eval '$eval' in $parsefile: $@" if $@; $result = "undef" unless defined $result; # use the version modulue to deal with v-strings require version; $result = version->parse($result); last; } close MOD; return $result; } sub accessor { my $self = shift; my $field = shift; $self->{ $field } = $_[0] if @_; return $self->{ $field }; } sub AUTOLOAD { my( $self ) = @_; use vars qw( $AUTOLOAD ); my( $method ) = $AUTOLOAD =~ m|.+::(.+)$|; if ( exists $self->{ $method } ) { splice @_, 1, 0, $method; goto &accessor; } } V-0.15/xt/03-pod-coverage.t000644 000766 000024 00000000177 14046435466 015705 0ustar00abetimstaff000000 000000 #! perl -I. -w use t::Test::abeltje; use Test::Pod::Coverage; Test::Warnings->import(':no_end_test'); all_pod_coverage_ok(); V-0.15/xt/00-manifest.t000644 000766 000024 00000000744 14046435466 015135 0ustar00abetimstaff000000 000000 #! perl -I. -w use t::Test::abeltje; use ExtUtils::Manifest qw/ manicheck filecheck /; $ExtUtils::Manifest::Quiet = 1; my @missing = filecheck(); if (@missing) { diag("Files missing from MANIFEST: @missing"); } ok(!@missing, "No files missing from MANIFEST"); my @extra = manicheck(); if (@extra) { diag("Files in MANIFEST but not here: @extra"); } ok(!@extra, "No extra files in MANIFEST"); BAIL_OUT("FIX MANIFEST FIRST!") if @missing || @extra; abeltje_done_testing(); V-0.15/xt/01-compile.t000644 000766 000024 00000001063 14046435466 014753 0ustar00abetimstaff000000 000000 #! perl I. -w use t::Test::abeltje; use File::Spec::Functions qw/:DEFAULT devnull/; use File::Find; my @to_compile; BEGIN { find( sub { -f or return; /\.pm$/ or return; push @to_compile, $File::Find::name; }, './lib' ) if -d './lib'; } my $out = '2>&1'; if (!$ENV{TEST_VERBOSE}) { $out = sprintf "> %s 2>&1", devnull(); } foreach my $src ( @to_compile ) { is( system( qq{$^X "-Ilib" "-c" "$src" $out} ), 0, "perl -c '$src'" ); } abeltje_done_testing(); V-0.15/xt/02-pod_syntax.t000644 000766 000024 00000000100 14046435466 015503 0ustar00abetimstaff000000 000000 #! perl -I. -w use strict; use Test::Pod; all_pod_files_ok(); V-0.15/t/Test/000755 000766 000024 00000000000 14047245122 013434 5ustar00abetimstaff000000 000000 V-0.15/t/04v_version.t000644 000766 000024 00000000260 14046435466 015071 0ustar00abetimstaff000000 000000 #! perl -I. -w use t::Test::abeltje; require_ok( 'V' ); my $version = V::get_version('V_Version'); is($version, "v1.2.3", "Got version: $version"); abeltje_done_testing(); V-0.15/t/02useit.t000755 000766 000024 00000001315 14046435466 014213 0ustar00abetimstaff000000 000000 #! perl -I. -w use t::Test::abeltje; $|=1; package Catch; sub TIEHANDLE { bless \( my $self ), shift } sub PRINT { my $self = shift; $$self .= $_[0] } sub PRINTF { my $self = shift; my $format = shift; $$self .= sprintf $format, @_; } package main; require_ok( 'V' ); local *CATCHOUT; my $out = tie *CATCHOUT, 'Catch'; my $stdout = select CATCHOUT; $V::NO_EXIT = 1; V->import( 'V' ); select $stdout; ok( $$out, "V->import() produced output" ); like( $$out, qr/^V\n/, "Module is V" ); like( $$out, qr/^\t(.+?)V\.pm: $V::VERSION$/m, "VERSION is $V::VERSION" ); is( $V::NO_EXIT, 1 , "Packagevar \$V::NO_EXIT set" ); is( V::get_version( 'V' ), $V::VERSION, "get_version()" ); abeltje_done_testing(); V-0.15/t/03bug.t000644 000766 000024 00000000465 14046435466 013642 0ustar00abetimstaff000000 000000 #! perl -I. -w use t::Test::abeltje; require_ok( 'V' ); my @modules = map { s{/}{::}g; s{\.pm$}{}; $_ } grep { /\.pm$/ && ! /^Config\.pm$/ } keys %INC; my $versions = eval { join ", ", map { "$_: " . V::get_version( $_ ) } qw/ Cwd /; }; is( $@, "", "readonly bug" ); abeltje_done_testing(); V-0.15/t/01basic.t000755 000766 000024 00000001470 14046435466 014144 0ustar00abetimstaff000000 000000 #! perl -I. use t::Test::abeltje; require_ok( 'V' ); ok( $V::VERSION, '$V::VERSION is there' ); SKIP: { local $ENV{PERL5OPT} = -d 'blib' ? '-Mblib' : '-Mlib=lib'; local *PIPE; my $out; if ( open PIPE, qq!$^X -MV |! ) { $out = do { local $/; }; unless ( close PIPE ) { if ( open PIPE, qq!$^X -I. -e 'use V;' |! ) { $out = do { local $/; }; skip "Error in pipe(2): $! [$?]", 1 unless close PIPE; } else { skip "Could not fork: $!", 1; } $out or skip "Error in pipe(1): $! [$?]", 1; } } else { skip "Could not fork: $!"; } my( $version ) = $out =~ /^.+?([\d._]+)$/m; is( $version, $V::VERSION, "Version ok ($version)" ); } abeltje_done_testing(); V-0.15/t/lib/000755 000766 000024 00000000000 14047245122 013263 5ustar00abetimstaff000000 000000 V-0.15/t/lib/V_Version.pm000644 000766 000024 00000000066 14045057304 015536 0ustar00abetimstaff000000 000000 package V_Version; $V_Version::VERSION = v1.2.3; 1; V-0.15/t/Test/abeltje.pm000644 000766 000024 00000003115 14047001757 015404 0ustar00abetimstaff000000 000000 package t::Test::abeltje; use v5.10.1; use warnings; use strict; our $VERSION = '1.01'; use parent 'Test::Builder::Module'; use Test::Builder::Module; use Test::More; use Test::Fatal qw( exception success dies_ok lives_ok ); use Test::Warnings qw( :all ); our @EXPORT = ( 'abeltje_done_testing', @Test::More::EXPORT, @Test::Fatal::EXPORT_OK, @Test::Warnings::EXPORT_OK ); sub import_extra { # use Test::Warnings 'warnings' interferes # with warnings->import() warnings::import('warnings'); strict->import(); require feature; feature->import(':5.10'); require lib; lib->import('t/lib'); if ($Devel::Cover::VERSION) { # don't run_end_test when Devel::Cover Test::Warnings->import(':no_end_test'); } } *abeltje_done_testing = \&Test::More::done_testing; 1; =head1 NAME t::Test::abeltje - Helper Test module that imports useful stuff. =head1 SYNOPSIS #! perl -I. use t::Test::abeltje; # Don't forget -I. on the shebang line # this is where you have your Fav. test-routines. abeltje_done_testing(); =head1 DESCRIPTION Mostly nicked from other modules (like L)... This gives you L, L, L and also imports for you: L, L, the L with the C<:5.10> tag and L with the C path. =head2 abeltje_done_testing Just for fun, an alias for L. =head2 import_extra This module works by the use of L. =head1 COPYRIGHT (c) MMXX - Abe Timmerman =cut