Programming Perl

Programming PerlSearch this book
Previous: 3.2.180 undefChapter 3
Next: 3.2.182 unpack

3.2.181 unlink

unlink LIST

This function deletes a list of files.[11] If LIST is omitted, it unlinks the file given in $_. The function returns the number of files successfully deleted. Some sample commands:

[11] Actually, under UNIX, it removes the directory entries that refer to the real files. Since a file may be referenced (linked) from more than one directory, the file isn't actually removed until the last reference to it is removed.

$cnt = unlink 'a', 'b', 'c';
unlink @goners;
unlink <*.bak>;

Note that unlink will not delete directories unless you are superuser and the -U flag is supplied to Perl. Even if these conditions are met, be warned that unlinking a directory can inflict Serious Damage on your filesystem. Use rmdir instead.

Here's a very simple rm command with very simple error checking:

@cannot = grep {not unlink} @ARGV;
die "$0: could not unlink @cannot\n" if @cannot;

Previous: 3.2.180 undefProgramming PerlNext: 3.2.182 unpack
3.2.180 undefBook Index3.2.182 unpack