#!/usr/bin/env perl use utf8; ############################################################################### # This program computes the lyrics to the song Alouette. # # See: https://en.wikipedia.org/wiki/Alouette_(song) # # Copyright © 2016 Richard Lesh. All rights reserved. ############################################################################### use strict; use warnings; our $PHRASES = ["la tête", "le bec", "les yeux", "le cou", "les ailes", "les pattes", "la queue", "le dos"]; sub print_refrain { print "Alouetté, gentille alouetté,\n"; print "Alouetté, je te plumerai.\n"; print "\n"; } sub print_verse { my ($num) = @_; print "Je te plumerai ", $PHRASES->[$num - 1], ".\n"; print "Je te plumerai ", $PHRASES->[$num - 1], ".\n"; for (my $i = $num - 1; $i >= 0; --$i) { print "Et ", $PHRASES->[$i], "! Et ", $PHRASES->[$i], "!\n"; } print "Alouetté! Alouetté!\n"; print "A-a-a-ah\n"; print_refrain(); } MAIN: { binmode(STDOUT, ":utf8"); binmode(STDERR, ":utf8"); binmode(STDIN, ":utf8"); print_refrain(); for (my $i = 1; $i <= scalar(@{$PHRASES}); ++$i) { print_verse($i); } }