in reply to working with directories

Your while loop is pretty useless.

while (@folder = readdir(DIR)){ last; }

... is basically a convoluted way of writing:

@folder = readdir(DIR);

Generally speaking, I'd recommend Path::Tiny as a much easier way of dealing with files and directories than Perl's built-ins.

use Path::Tiny 'path'; my $dir = path('/Users/Maxi/Desktop/Verzeichnis beispiel'); for my $file ($dir->children) { next if $file->is_dir; my $fh = $file->openr; while (my $line = <$fh>) { ...; } }
use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name