#!/usr/bin/env perl use strict; use warnings; dir_del("$ARGV[0]"); sub dir_del { my @dirlist=("$_[0]"); until (scalar(@dirlist)==0) { opendir my($dh),"$dirlist[0]"; my @filelist=grep {!/^\.\.?$/} readdir $dh; for my $i (0..scalar(@filelist)-1) { if ( -f "$dirlist[0]/$filelist[$i]" ) { unlink("$dirlist[0]/$filelist[$i]"); } if ( -d "$dirlist[0]/$filelist[$i]" ) { push @dirlist,"$dirlist[0]/$filelist[$i]"; } } closedir $dh;rmdir "$dirlist[0]";shift @dirlist; } rmdir "$_[0]"; }