Sha256: 657293e4c6de2ae99ff214442ed216282672ac936c5702b7934efff8767210c9

Contents?: true

Size: 704 Bytes

Versions: 114

Compression:

Stored size: 704 Bytes

Contents

exercise: Luhn
version: 2
plan: 16
subs: is_luhn_valid
tests: |-
  is $subs{is_luhn_valid}->($_->{input}), $_->{expected}, $_->{description} foreach @{$C_DATA->{cases}};

example: |-
  sub is_luhn_valid {
    my ($input) = @_;
    $input =~ s/\s+//g;
    if (length $input < 2 || $input =~ /\D+/) {return 0}

    my @num = split(//, $input);
    unshift @num, 0 if scalar @num % 2;

    my $count = 1;
    my $sum = 0;

    foreach (@num) {
      if ($count % 2) {
        $sum += $_ * 2;
        $sum -= 9 if $_ * 2 > 9;
      }
      else {
        $sum += $_;
      }
      $count += 1;
    }

    if ($sum % 10) {return 0};
    return 1;
  }

stub: |-
  sub is_luhn_valid {
    my ($input) = @_;
  }

Version data entries

114 entries across 114 versions & 1 rubygems

Version Path
trackler-2.2.1.110 tracks/perl5/exercises/luhn/.meta/exercise-data.yaml
trackler-2.2.1.109 tracks/perl5/exercises/luhn/.meta/exercise-data.yaml
trackler-2.2.1.108 tracks/perl5/exercises/luhn/.meta/exercise-data.yaml
trackler-2.2.1.107 tracks/perl5/exercises/luhn/.meta/exercise-data.yaml
trackler-2.2.1.106 tracks/perl5/exercises/luhn/.meta/exercise-data.yaml
trackler-2.2.1.105 tracks/perl5/exercises/luhn/example.yaml
trackler-2.2.1.104 tracks/perl5/exercises/luhn/example.yaml
trackler-2.2.1.103 tracks/perl5/exercises/luhn/example.yaml
trackler-2.2.1.102 tracks/perl5/exercises/luhn/example.yaml
trackler-2.2.1.101 tracks/perl5/exercises/luhn/example.yaml
trackler-2.2.1.100 tracks/perl5/exercises/luhn/example.yaml
trackler-2.2.1.99 tracks/perl5/exercises/luhn/example.yaml
trackler-2.2.1.98 tracks/perl5/exercises/luhn/example.yaml
trackler-2.2.1.97 tracks/perl5/exercises/luhn/example.yaml
trackler-2.2.1.96 tracks/perl5/exercises/luhn/example.yaml
trackler-2.2.1.95 tracks/perl5/exercises/luhn/example.yaml
trackler-2.2.1.94 tracks/perl5/exercises/luhn/example.yaml
trackler-2.2.1.93 tracks/perl5/exercises/luhn/example.yaml
trackler-2.2.1.92 tracks/perl5/exercises/luhn/example.yaml
trackler-2.2.1.91 tracks/perl5/exercises/luhn/example.yaml