libapa...R::Util(3pm)

πŸ’– APR::Util πŸ’–

okay bestie, gather round, because today we're talking about a little Perl module called APR::Util β€” the "Perl API for Various APR Utilities" β€” and I promise it's more fun than it sounds. it lives in the user-contributed Perl documentation corner of the manual, and honestly? it's giving "miscellaneous drawer energy" in the best way. πŸŽ€


✨ Synopsis ✨

use APR::Util ();

$ok = password_validate($passwd, $hash);

🌸 Description 🌸

Various APR utilities that don't fit into any other group. that's it, that's the whole vibe β€” it's the junk drawer of APR, and we respect it. πŸ’…


πŸ‘‘ API πŸ‘‘

APR::Util provides the following functions and/or methods:

πŸ” password_validate

Validate an encrypted password hash against a plain text password (with lots of restrictions and peculiarities). yes, the manpage itself says "peculiarities", so buckle up. πŸ¦‹

$ok = password_validate($passwd, $hash);
  • arg1: $passwd ( string ) β€” Plain text password string
  • arg2: $hash ( string ) β€” Encrypted or encoded hash. See below for supported hash formats.
  • ret: $ok ( boolean ) β€” The password either matches or not.
  • since: 2.0.00

The function handles the output of the following functions (it knows to tell md5 and sha1 from the others, since they are have a special pattern recognized by apr):

  • md5 β€” generated by apr_md5_encode() (for which at the moment we have no perl glue, ask if you need it).
  • sha1 β€” generated by apr_sha1_base64() (for which at the moment we have no perl glue, ask if you need it).

and it's available only since Apache 2.0.50

  • crypt β€” On all but the following platforms: MSWin32, beos and NetWare. Therefore you probably don't want to use that feature, unless you know that your code will never end up running on those listed platforms.

Moreover on these three platforms if that function sees that the hash is not of md5 and sha1 formats, it'll do a clear to clear text matching, always returning success, no matter what the hashed value is.

⚠️ Warning: double check that you understand what this function does and does not before using it. seriously bestie, this is not a vibe-check-and-go situation, this is a read-it-twice situation. 😭

πŸ™ˆ Unsupported API πŸ™ˆ

not me about to tell you about the messy ones. so, APR::Socket also provides auto-generated Perl interface for a few other methods which aren't tested at the moment and therefore their API is a subject to change. These methods will be finalized later as a need arises. If you want to rely on any of the following methods please contact the the mod_perl development mailing list so we can help each other take the steps necessary to shift the method to an officially supported API.

(and yes, the original really does say "contact the the mod_perl development mailing list" twice. we love a typo that got tenure. πŸ’€)

🧚 filepath_name_get

META: Autogenerated - needs to be reviewed/completed

[We have File::Spec and File::Basename for this purpose, I can't see why this api is needed]

return the final element of the pathname

$ret = filepath_name_get($pathname);
  • arg1: $pathname ( string ) β€” The path to get the final element of
  • ret: $ret ( string ) β€” the final element of the path

For example:

"/foo/bar/gum"    => "gum"
"/foo/bar/gum/"   => ""
"gum"             => "gum"
"bs\\path\\stuff" => "stuff"
  • since: subject to change

πŸ“ password_get

META: Autogenerated - needs to be reviewed/completed

Display a prompt and read in the password from stdin.

$ret = password_get($prompt, $pwbuf, $bufsize);
  • arg1: $prompt ( string ) β€” The prompt to display
  • arg2: $pwbuf ( string ) β€” Buffer to store the password
  • arg3: $bufsize ( number ) β€” The length of the password buffer.
  • ret: $ret ( integer )
  • since: subject to change

🌈 See Also 🌈

mod_perl 2.0 documentation. go read it, it's the main character of this whole universe. πŸ‘‘


mod_perl 2.0 and its core modules are copyrighted under The Apache Software License, Version 2.0.


πŸ’œ Authors πŸ’œ

The mod_perl development team and numerous contributors. absolute icons, all of them. 🫢


and that's the whole page, bestie! this one came to you courtesy of perl v5.42.3, dated 2026-08-20 β€” so go forth, validate those passwords, and remember: read the warning twice. πŸ’–βœ¨

πŸ“¦ where this page comes from