Re: unlink question

[email protected] (ToddAndMargo via perl6-users) Thu, 9 Oct 2025 17:19:32 -0700
Newsgroups perl.perl6.users
Message-ID <[email protected]>
>> On Thu, Oct 9, 2025 at 5:25 PM ToddAndMargo via perl6-users <perl6- 
>> [email protected] <mailto:[email protected]>> wrote:
>> 
>>     On 10/9/25 7:44 AM, Tom Browder wrote:
>>      >     if not unlink $OldFileName {
>>      >             PrintRedErr( "Unable to Delete OldFileName
>>     <$OldFileName>\n" );
>>      >          }
>>      >
>>      >
>>      > Todd, what is your intent? Do want to delete an existing? Or not?
>> 
>>     Hi Tom,
>> 
>>     I want to delete an existing file.
>> 
>>     This is a file download program that checks for new revisions
>>     of software I support and copies to a special flash drive with
>>     a read only switch, so it does not pick up or spread viruses.
>>     If it finds a new version, it downloads it and removes the
>>     old version.
>> 
>>     In this particular sub, the new version is tested to see if
>>     it is the predicted size.  If so, it deletes the old version
>>     of that file.  If the size test file fails, it alerts and removes
>>     that bad new file (303 not found, etc.) and leaves the
>>     old file alone.
>> 
>>     I was presuming that unlink returned a true or false.  True
>>     if delete was successful and false if not.  The results
>>     were random.  (It mostly worked.)
>> 
>>     -T
>> 


On 10/9/25 2:46 PM, Will Coleda wrote:
 > Per the docs:
 >
 > *The method form returns True on success, or fails with X::IO::Unlink if
 > the operation could not be completed. If the file to be deleted does not
 > exist, the routine treats it as success.
 > *
 >
 > So I'm assuming that your occasional failures might have been if
 > something had the file open at the time you were trying to unlink it.
 >
 > When it fails, whatever the OS error was is in the Exception object, so
 > you can introspect it and see what the complaint was.
 >
 > Note - you do not have to check to see if the file exists before you
 > remove it. As long as the file isn't there, that's a success. You only
 > need to check that if specifically care if it existed first.


This what I believed to be the case as well.

The file absolutely exists.  It is tested for in
a different sub.