{ no warnings 'substr'; ... use substr here ... } #### my $substr; if (length($_) >= 4) { $substr = substr($_, 4, 3); } else { $substr = ''; } #### sub find_process { ... if (length($file) < $x) { warn("Skipping file $file\n"); return; } ... substr($file, $x, ...) ... ... } #### sub find_process { no warnings 'substr'; ... my $part = substr($file, $x, ...); if (not length $part) { warn("Skipping file $file\n"); return; } ... }