http://qs321.pair.com?node_id=733275
Description: So I'm getting married in October, and I started thinking about wedding vows, and so I wanted to get a better feel for what other people spend most of their wedding vow-ing time talking about. Here's a little script that came out of that effort. It takes a text file full of wedding vows (which you'll have to provide for yourself) and prints the text's triptycs.
#!/usr/bin/perl

my@wordsInOrder;
while (<>) {
    foreach ("$_" =~ m/\w+/g) {
        push @wordsInOrder, lc($_);
    }
}

my$trypHash = {};
for ($i=0;$i < scalar(@wordsInOrder)-2; $i++) {
    $trypHash->{$wordsInOrder[$i]." ".$wordsInOrder[$i+1]." ".$wordsIn
+Order[$i+2]} += 1;
}
my$dupeHash = {};
for ($i=0;$i < scalar(@wordsInOrder)-1; $i++) {
    $dupeHash->{$wordsInOrder[$i]." ".$wordsInOrder[$i+1]} += 1;
}
my$oneHash = {};
for ($i=0;$i < scalar(@wordsInOrder); $i++) {
    $oneHash->{$wordsInOrder[$i]} += 1;
}

foreach my$one (sort {$oneHash->{$b} <=> $oneHash->{$a}} keys %{$oneHa
+sh} ) {
    print "$one\n";
    foreach my$two (sort {$dupeHash->{$b} <=> $dupeHash->{$a}} keys %{
+$dupeHash} ) {
        next unless $two =~ m/^$one/;
        print "\t$two\n";
        foreach my$three (sort {$trypHash->{$b} <=> $trypHash->{$a}} k
+eys %{$trypHash} ) {
            next unless $three =~ m/^$two/;
            print "\t\t$three\n";
        }
    }
}