Matt Owen

source code for "files/pe/pe_022.pl"

return to portfolio
  1.  #!/usr/bin/perl
  2.  
  3.  use strict;
  4.  use warnings;
  5.  use necessary;
  6.  
  7.  open FILE, "files/names.txt";
  8.  
  9.  my $str = '';
  10.  my (@lis, %scores, $k, $sum);
  11.  
  12.  
  13.  sub name_score {
  14.   my ($name, $pos, @rest) = @_;
  15.   my $sum = 0;
  16.  
  17.   $sum += $_ for (map { ord($_)-64 } split //, substr $name, 1, length($name)-2);
  18.   return $pos*$sum;
  19.  }
  20.  
  21.  
  22.  $str = $_ while (<FILE>);
  23.  
  24.  @lis = sort split(/,/, $str);
  25.  
  26.  $sum = 0;
  27.  
  28.  for (1..scalar @lis) {
  29.   $k = shift @lis;
  30.   $sum += name_score($k, $_);
  31.  }
  32.  
  33.  print $sum;
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  close FILE;