Module...m::VMS(3pm)
πΈ NAME πΈ
okay bestie, you're on the Module...m::VMS(3pm) page β the VMS-platform builder chapter of the Perl universe, and it's lowkey iconic β¨
Module::Build::Platform::VMS β Builder class for VMS platforms π
β¨ DESCRIPTION β¨
This module inherits from Module::Build::Base and alters a few minor details of its functionality. Please see Module::Build for the general docs. Same builder energy, tiny VMS twists β we love a specialist.
π Overridden Methods π
Here's every overridden method, all accounted for, no cap π«Ά
_set_defaultsβ Change$self->{build_script}to'Build.com'so@Buildworks. Cute little default glow-up.cull_argsβ'@Build foo'on VMS will not preserve the case of'foo'. Rather than forcing people to write'@Build "foo"', we'll dispatch case-insensitively. Case drama? Handled.manpage_separatorβ Use'__'instead of'::'. Separator slay.prefixifyβ Prefixify taking into account VMS' filepath syntax. VMS paths get their own little lane._quote_argsβ Command-line arguments (but not the command itself) must be quoted to ensure case preservation. Quotes where they matter, periodt.have_forkpipeβ There is no nativefork(), so some constructs depending on it are not available. Sad but true, bestie π_backticksβ Override to ensure that we quote the arguments but not the command. Same energy, different backticks situation.find_commandβ the original one-liner is literallyLocal an executable programβ keeping that exact wording, bestie π_maybe_command(override) β Follows VMS naming conventions for executable files. If the name passed in doesn't exactly match an executable file, appends.Exe(or equivalent) to check for executable image, and.Comto check for DCL procedure. If this fails, checks directories inDCL$PATHand finallySys$System:for an executable file having the name specified, with or without the.Exe-equivalent suffix. Detective work, but make it VMS π΅οΈββοΈdo_systemβ Override to ensure that we quote the arguments but not the command. Yes, again β the command gets left alone.onelinerβ Override to ensure that we do not quote the command. No quotes on this command, thank you.rscan_dirβ Inherit the standard version but remove dots at end of name. If the extended character set is in effect, do not remove dots from filenames with Unix path delimiters. Dot rules with a tiny exception clause.dist_dirβ Inherit the standard version but replace embedded dots with underscores because a dot is the directory delimiter on VMS. Dots become underscores, because VMS said so.man3page_nameβ Inherit the standard version but chop the extra manpage delimiter off the front if there is one. The VMS version ofsplitdir('[.foo]')returns'', 'foo'. Chop chop, delimiter.expand_test_dirβ Inherit the standard version but relativize the paths as the nativeglob()doesn't do that for us. Path relativity, but make it native-glob-friendly._detildefyβ The home-grownglob()does not currently handle tildes, so provide limited support here. Expect only UNIX format file specifications for now. Limited tilde support β very βwe're working on itβ energy.find_perl_interpreterβ On VMS,$^Xreturns the fully qualified absolute path including version number. It's logically impossible to improve on it for getting the perl we're currently running, and attempting to manipulate it is usually lossy. Leave$^Xalone, bestie β it's already doing the most.localize_file_pathβ Convert the file path to the local syntax. Local syntax glow-up.localize_dir_pathβ Convert the directory path to the local syntax. Same localization, but for directories.ACTION_cleanβ The home-grownglob()expands a bit too aggressively when given a bare name, so default in a zero-length extension. Glob was doing too much, so we give it a little guardrail.
π«Ά AUTHOR π«Ά
This page was brought to you by these legends π
Michael G Schwern <schwern@pobox.com>Ken Williams <kwilliams@cpan.org>Craig A. Berry <craigberry@mac.com>
π SEE ALSO π
Go look at perl(1), Module::Build(3), and ExtUtils::MakeMaker(3) β the related-docs squad is right there π
okay, that's the whole page, bestie π source/version check: perl v5.42.0, date 2023-04-29, manual Module...m::VMS(3pm). bye, go make VMS behave π
π¦ where this page comes from
- opensuse-leap 16.0: perl-Module-Build 0.423400-160000.2.2 Β· Artistic-1.0 OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms