A couple of fixes and a couple of suggestions. First, the
mkdir thing has a precedence problem, as
tye suggests. Use parenthesis or
or to fix it:
mkdir("$dir", 0777) || die "Could not mkdir \"$dir\": $!\n";
Second, the
chop bothers me, 'cuz it's easy to grab something you don't want. (In this case, it's right, but I prefer
chomp).
Third, there are a couple of other ways for doing your menu stuff. Some people prefer this:
($menu eq 1) && addwant();
($menu eq 2) && addhave();
When I have to do something like this, I usually use a data structure of references:
my @actions = qw( \&addwant \&addhave ); # and so forth
# get input
if (defined (my $action = $actions[$menu])) {
$action->();
} else {
print "\n\n\nGoodbye!\n";
exit;
}
Finally, if you want to clear the screen, there's a bit in
perlfaq8 that might help. Not a big deal, though.