# this is pseudo-code $filename = '>test' or '+test' open(HANDLE, ">$filename"); # >>test or >+test (ruh-roh!) # likewise $filename = 'ls|' or '>test; open(HANDLE, "$filename"); # ls| (pipe) or clobbers 'test' # generally safe (in that behavior is not unexpected): open(PIPE, " $command |") open(PIPE, "| $command\0"); # safe version of "|ls" open(FILE, "> $filename\0"); # ">file" open(FILE, " $filename\0"); # "file"