#!/usr/bin/perl use strict; use warnings; my @words; while () { push @words, split /\s/ } my %wordscore = scrabble_score(@words); for (sort keys %wordscore) { print qq/"$_" = $wordscore{$_} points\n/; } sub scrabble_score { my %value = ( A => 1, F => 4, K => 5, P => 3, U => 1, Z => 10, B => 2, G => 2, L => 1, Q => 10, V => 4, C => 3, H => 4, M => 3, R => 1, W => 4, D => 2, I => 1, N => 1, S => 1, X => 8, E => 1, J => 8, O => 1, T => 1, Y => 4 ); my %score; for (@_) { my @letter = split "", uc $_; my $word = $_; $score{$word} = 0; for (@letter) { $score{$word}+=$value{$_} } } return %score; }