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