use File::Slurp; if ($msg =~ /(.*)\+\+/) { my $user = $1; my $karma_file = "karma.txt"; my $results = grep (/^$user/, $karma_file); print "$results\n"; if ($results == 0) { append_file ($karma_file, "$user 1\n"); print "$user now exists\n"; } else { my @lines = split m[$/], read_file ($karma_file); foreach my $line (@lines) { my ($user, $karma) = split /\s/, $line; $karma++; my @without_user = grep (!/^$user/, $results); overwrite_file ($karma_file, @without_user); append_file ($karma_file, "$user $karma\n"); print "$user now has $karma karma\n"; undef $user; } } } } ); }