Skip to content

Instantly share code, notes, and snippets.

@mrmt
Created November 3, 2011 08:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mrmt/1336034 to your computer and use it in GitHub Desktop.
Save mrmt/1336034 to your computer and use it in GitHub Desktop.
#!/usr/bin/perl
use feature 'say';
use warnings;
use strict;
usage() unless scalar(@ARGV) == 1;
our $max_value = $ARGV[0];
usage() unless $max_value > 0;
for my $i (1 .. $max_value){
if(fizzbuzz($i)){
say 'FizzBuzz';
}elsif(fizz($i)){
say 'Fizz';
}elsif(buzz($i)){
say 'Buzz';
}else{
say $i;
}
}
exit;
sub fizz{
my $n = shift;
return ($n % 3 == 0);
}
sub buzz{
my $n = shift;
return ($n % 5 == 0);
}
sub fizzbuzz{
my $n = shift;
return fizz($n) && buzz($n);
}
sub usage{
die "Usage: $0 max_value\n";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment