Hi Kenneth,
Thanks for your advice. However, I think you missed my point. If I change my code to:
sub threeYrExpiration { my $abs_filename = $_[0]; my $unlinkStatus = unlink("$abs_filename"); if ($unlinkStatus == 1) { $unlinkCountTotal++; $abs_filename =~ s#.*WORKAREA\/[^\/]*##; push (@deleted_files, $abs_filename); $task->AddFile("$abs_filename", "Deleted by content expiration + report"); $logger->info("File to be deleted added to job: $abs_filename" +); } else { $logger->info("File to be deleted \"$abs_filename\" failed. Re +ceived $unlinkStatus instead of 1."); $task->CallBack(1, "Error Deleting expired file"); } }
It works, which is good. However, I have another sub which does similar (using same variables) but has differences in processing. Hence the reason for wanting to use another method calling sub from within another sub as seen below. So basically using the 2 subs code would look similar to:
sub file_handler { my ($abs_filename) = @_; if ((($current_mth == 1) && ($last_day_current_mth == 31)) { + threeYrExpiration($abs_filename); } else { sevenYrExpiration($abs_filename); } } # End of sub file_handler sub threeYrExpiration { my $abs_filename = $_[0]; my $unlinkStatus = unlink("$abs_filename"); if ($unlinkStatus == 1) { $unlinkCountTotal++; $abs_filename =~ s#.*WORKAREA\/[^\/]*##; push (@deleted_files, $abs_filename); $task->AddFile("$abs_filename", "Deleted by content expiration + report"); $logger->info("File to be deleted added to job: $abs_filename" +); } else { $logger->info("File to be deleted \"$abs_filename\" failed. Re +ceived $unlinkStatus instead of 1."); $task->CallBack(1, "Error Deleting expired file"); } } sub sevenYrExpiration { ... ... }
In reply to Re^2: Delete file from sub call within another sub
by begood321
in thread Delete file from sub call within another sub
by begood321
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |