use strict; use File::Find; my $limit = 4 * 1024 * 1024 * 1024; my @source_directories = qw( ); my @files; File::Find::find( sub { push @files, $File::Find::name }, @source_directories ); my $total; my $basename = "part-"; my $count = 1; my $dirname = $basename . $count; for my $file (@files) { my $size = -s $file; if ($total + $size > $limit) { $total = 0; $count++; $dirname = $basename . $count; print "# 4GB Limit reached, starting new volume $dirname"; }; print "$file => $dirname/$file\n"; };