use strict; use warnings; my $obj = bless {}; $obj->processLine ($_) while ; $obj->report (); sub processLine { my ($self, $line) = @_; return if $line !~ /^M/; chomp $line; my $filename = (split '/', $line)[-1]; return if ! defined $filename; $self->{files}{$filename} ||= $line; } sub report{ my ($self) = @_; print "People not found\n" if ! exists $self->{files}{'people.pdf'}; print "animal not found\n" if ! exists $self->{files}{'animal.pdf'}; print "MSI not found\n" if ! exists $self->{files}{'setup.msi'}; } __DATA__ M/people.pdf M/wiggles.pdf M/setup.msi #### animal not found