All pastes #1447268 Raw Edit

Miscellany

public text v1 · immutable
#1447268 ·published 2009-06-04 08:07 UTC
rendered paste body
#!/usr/bin/perl

#shortest_longest.pl FILE

use warnings;
use strict;

my($n,$w,@words,$words,$longest,$shortest,@longest_list,@shortest_list,@sorted_short,@sorted_long,$array_long,$array_short,@lines,$x,@longest_line,@shortest_line,$y);

while (<>) {
	chop;
	tr/;:.,!\-'"'?//d;
	tr/A-Z/a-z/;
	foreach $w (split) {
		push(@words, $w);
		push(@lines, "$.\t ($_)");
	}
}

$longest = "";
$shortest = $words[0];
$n = 0;

while ($words[$n]) {
	if (length($words[$n]) >= length($longest)) {
		$longest = $words[$n];
	}
	elsif (length($words[$n]) <= length($shortest)) {
		$shortest = $words[$n];
	}
	$n++;
}

$n = 0;
while ($words[$n]) {
	if (length($words[$n]) == length($longest)) {
		push(@longest_list,$words[$n]);
		push(@longest_line,$lines[$n]);
	}
	elsif (length($words[$n]) == length($shortest)) {
		push(@shortest_list,$words[$n]);
		push(@shortest_line,$lines[$n]);
	}
	$n++;
}


@sorted_short = sort(@shortest_list);
@sorted_long = sort(@longest_list);
$array_long = @longest_list;
$array_short = @shortest_list;
$n = 0; 

if ($array_long > 1) {
	print "Die laengsten Woerter mit " . length($longest) .  " Buchstaben sind: \n@sorted_long\n\n";
}
else {
	print "Das laengste Wort ist $longest.\n\n";
}

while ($longest_list[$n]) {
	foreach $x (@longest_line) {
		print "$longest_list[$n] in der Zeile $x.\n";
		$n++;
	}
}

if ($array_short > 1) {
		print "\nMit " . length($shortest) . " Buchstaben die kuerzesten Woerter sind: \n@sorted_short\n\n";
}
else { 
		print "Das kuerzeste Wort ist $shortest\n";
}

$n = 0;
while ($shortest_list[$n]) {
        foreach $y (@shortest_line) {
                print "$shortest_list[$n] in der Zeile $y.\n";
                $n++;
        }
}