Sha256: 16b8c6bd515c298e50048bfaebeae7986bb34b682192ac21a39f7aaa9c1b2c3d

Contents?: true

Size: 1.18 KB

Versions: 323

Compression:

Stored size: 1.18 KB

Contents

package Example;

sub verse { 
    my $num = shift;
    my $song = _line1($num) . _line2($num);
    return $song;
}

sub sing {
    my ($start, $end) = @_;
    $end = 0 unless $end;
    my $song;

    while ($start >= $end) {
        $song .= verse($start);
        $song .= "\n";
        $start--;
    }

    return $song;
}

sub _line1 {
    my $num = shift;

    if ($num > 1) {
        return "$num bottles of beer on the wall, $num bottles of beer.\n";
    }
    elsif ($num == 1) {
        return "1 bottle of beer on the wall, 1 bottle of beer.\n";
    }
    elsif ($num == 0) {
        return "No more bottles of beer on the wall, no more bottles of beer.\n";
    }
}

sub _line2 {
    my $num = shift;

    if ($num > 2) {
        $num--;
        return "Take one down and pass it around, $num bottles of beer on the wall.\n";
    }
    elsif ($num == 2) {
        return "Take one down and pass it around, 1 bottle of beer on the wall.\n";
    }
    elsif ($num == 1) {
        return "Take it down and pass it around, no more bottles of beer on the wall.\n";
    }
    elsif ($num == 0) {
        return "Go to the store and buy some more, 99 bottles of beer on the wall.\n";
    }
}
__PACKAGE__;

Version data entries

323 entries across 323 versions & 1 rubygems

Version Path
trackler-2.2.1.105 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.104 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.103 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.102 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.101 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.100 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.99 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.98 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.97 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.96 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.95 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.94 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.93 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.92 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.91 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.90 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.89 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.88 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.87 tracks/perl5/exercises/beer-song/Example.pm
trackler-2.2.1.86 tracks/perl5/exercises/beer-song/Example.pm