As almut and cdarke say, simply invoking the 'mail' command via Perl isn't going to do anything if your machine isn't configured to send mail using the mail command. That is, if you aren't running SendMail, Postfix, or other mail server (even if the server is relaying to another mail server), the mail isn't going to go anywhere. Perl isn't going to provide additional functionality here, because it's just a scripted method of typing a command at a command prompt.
In addition, the use of the Shell package isn't recommended for production use by its own author, so you probably don't want to use this package to run shell commands.
If you do want to send mail usin Perl, but you don't want to run your own mail server, then I recommend the use of an SMTP server so that you can configure . Your Internet Service Provider should give information on how to use one (just get the host name, if user name and password is required, if TLS/SSL is required. If that fails too, then you can use Google as an SMTP server. Once you've done that, you can use Email::Simple to create a properly formatted mail that you can send with Net::SMTP