my $condition = sub { !-d $_[0] }; my $result = checkForDirectory($condition); sub checkForDirectory { my $condition = shift; ... if ($condition->($someDir)) { doSomethingElse(); } }