my @files;

sub scan_folder{
	my $folder = shift;
	$folder =~ s/\\/\//g;	#quote spaces
	$folder =~ s/ /\\ /g;	#quote spaces
	unless($folder =~ /\/$/){
		$folder .= '/';
	}
	foreach ( glob( $folder.'*' ) ){
		push @files, $_;
		if(-d){
			scan_folder( $_ ) unless /^\.{1,2}$/;	#Skip . and .. folders !
			next;
		}
	}
}

my $folder = shift || '.';
scan_folder( $folder );
print join "\n", sort { length($a) cmp length($b) } @files;