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 @Build works. 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 native fork(), 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 literally Local 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 .Com to check for DCL procedure. If this fails, checks directories in DCL$PATH and finally Sys$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 of splitdir('[.foo]') returns '', 'foo'. Chop chop, delimiter.
  • expand_test_dir β€” Inherit the standard version but relativize the paths as the native glob() doesn't do that for us. Path relativity, but make it native-glob-friendly.
  • _detildefy β€” The home-grown glob() 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, $^X returns 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 $^X alone, 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-grown glob() 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