my $root= "/usr/local "; # oops system( "rm -rf $root/lib" ); # goodbye /lib (and /usr/local) # However, if you instead do: system( "rm", "-rf", "$root/lib" ); # then nothing gets deleted unless # "/usr/local /lib" exists.