#!/usr/bin/perl use warnings; use strict; use Net::POP3; my $pop = Net::POP3->new('pop3.server') || die("Coudn't connect"); if(!$pop->login('email@adress.com', 'password') < 0){ die("Can't connect"); } my $last, $now) = '0'; sub check { $last = shift; $pop->quit; sleep 5; $pop = Net::POP3->new('pop3.server') || die("Can't connect"); $now = $pop->login('email@adress', 'password') || die("Can't connect"); if ($last < $now){ my $msg = $pop->get($now); for my $line (@$msg){ if( $line =~ /^Subject: '(.*)'/ ){ system(`$1`); return $now; print "I done $1"; last } } } return $now; } while (1){ &check($now); } $pop->quit();