It seems like such output is just a little too golfed!
Update: Otherwise, you can still make it shorter:
die+map{(Fizz)[$_%3].(Buzz)[$_%5]||$_}1..100
Update 2: As Sidhekin pointed out to me, the -l switch makes the newline problems go away.
On an unrelated note, I thought it would be fun writing a version that doesn't use the modulo operator (%). Originally I tried golfing it, but it didn't golf well, so here's an easy-to-read version, which makes use of divisibility tests:
use strict; use warnings; sub divisible_by_3 { my $num = shift; while (length($num) > 1) { my $sum = 0; map { $sum += $_ } split '', $num; $num = $sum; } return $num =~ /^[0369]$/; } sub divisible_by_5 { my $num = shift; return ($num =~ /[05]$/); } sub divisible_by_15 { my $num = shift; return (divisible_by_3($num) and divisible_by_5($num)); } foreach (1 .. 100) { printf "%s\n", divisible_by_15($_)? "fizzbuzz": divisible_by_3($_)? "fizz": divisible_by_5($_)? "buzz": $_; }
In reply to Re^3: Golf Challenge: FizzBuzz
by liverpole
in thread Golf Challenge: FizzBuzz
by Ovid
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |