Acme-No

 view release on metacpan or  search on metacpan

No.pm  view on Meta::CPAN

$Acme::No::VERSION = '0.03';

sub import {

  filter_add(sub {

    my $status = 0; 

    if (($status = filter_read) > 0) {

      my (undef, $no, $module, $version) = m/(^|;)\s*(no)\s+([\w\-:]*)\s*(\d+[.]?(\d+[._]?)*)/;

      if ($no && $module && $version) {
        # no mod_perl 2.0;
                        
        if ($module eq 'v') {
          # fall through to Perl part if we caught 'no v5.6.0'
        }
        else {

          eval "require $module" or die $@;

          my $modversion = UNIVERSAL::VERSION($module);

          croak "$module version $modversion too high--version less than $version required"
            unless $modversion < $version;

          undef $no;  # we're done
        }
      }

      if ($no && $version) {
        # no 6.0;

        # perl version foo (ugh)
        my ($rev, $ver, $subver) = split '[._]', $version;

        if ($ver > 1000) {              # 5.006001
          $subver = ($ver % 1000);
          $ver = int($ver / 1000);
        }
        elsif ($ver > 100) {            # 5.00503
          $subver = ($ver % 100) * 10;
          $ver = int($ver / 100);
        }
        else {                          # silence undef warnings
          $subver ||= 0;
        }

        $version = $rev + ($ver/1000) + ($subver/1000000);

        croak "Perl v$] too high--version less than v$version required"
          unless $] < $version;
      }

      # wipe away user code so the real perl doesn't



( run in 1.384 second using v1.01-cache-2.11-cpan-d80b1682f3f )