use strict; use warnings; use Cwd qw( cwd ); my $target = 4096; my $pad = "x" x 200; my $dirlen = length cwd(); while ( $dirlen < $target ) { my $remaining = $target - $dirlen; printf qq[dirlen = %s\n], $dirlen; if ( $remaining > length $pad ) { mkdir $pad or last; chdir $pad or last; $dirlen = length cwd(); next; } my $subdir = substr $pad, 0, ($remaining - 1); mkdir $subdir; chdir $subdir; $dirlen = length cwd(); last; } printf qq[dirlen = %s\n], $dirlen; printf qq[last error = %s\n], $!; exit 0;