in reply to how to use file::scan

It looks fine to me.

$e will only return anything if there was some sort of error. $c means that the file was skipped, and since a 0 was returned, it wasn't skipped. what you'll want to add is:
if($fs->suspicious) { # do something. }
What i'm guessing is that the file you're scanning has no viruses, thus nothing will really "show up" (and the previous bit of code will be skipped as well). You'll only have to worry when $fs->suspicious returns true (meaning a virus was found).

Update: Quick test:

use File::Scan; $fs = File::Scan->new(extension => 'bad', move => 'infected'); $fs->scan('a.pl'); #scan this file, it has no viruses =) print 'er: ', $fs->error, "\n"; print 'sk: ', $fs->skipped, "\n"; print 'su: ', $fs->suspicious, "\n"; __output__ er: sk: 0 su: 0
As you can see: no errors, it was scanned, and it wasn't suspicious. all is well.

--
Rock is dead. Long live paper and scissors!