#!/usr/bin/perl use strict; my @fibo = (0, 1); my @text; push @text, split /\s+/, $_ while ; sub modword { my $word = pop; return (( ($fibo[-1]-1) % length($word) )+1) } foreach my $word (@text) { my $space = ' ' if $word =~ /[.!?]/; $word =~ s/\W+//g; print "\n" and next unless $word; print substr($word, modword($word) - 1, 1), $space; @fibo = (modword($word), $fibo[-2] + modword($word)); # print "\t($word $fibo[0] $fibo[1])\n"; } print "\n\n\n";