=for comment ### Definitions "ugly characters" ;; chars either not allowed or desired "too long" ;; maximum allowable length for a basename "basename" ;; file-full-path minus file-extension "file-extension" ;; anything that satisfies m/\.[^\.]+$/ "rename suprises" ;; unexpected results from a batch rename ### standard operations rename extension (eg *.foo to *.fee) rename basename (eg ibm*.* to IBM*.*) routine replace (eg lower-case to upper-case) ### file-management operations rename and move rename and copy rename to non-yet-existent location (mkpath-style) ### scrubbing operations remove all "ugly characters" replace all "ugly characters" with a safe char (eg "_") reduce all "too long" names to a truncated shorter name (and allow the user to specify truncate rules) (and prevent "rename collision" on non-unique truncations) ### safeguard operations avoid "rename collision" by halting the program avoid "rename collision" by appending UniqueID avoid "rename suprises" with global-preview-before-rename ### rename based on content rename htm file by the content of the