SCANDEPS(1)

✨ scandeps.pl β€” like, it scans your Perl file prereqs πŸ’…

okay so bestie, this is the perl v5.42.0 page for SCANDEPS(1) straight out of the user-contributed Perl docs, and I'm gonna walk you through it like we're texting at 2am 🫢

🌸 NAME 🌸

scandeps.pl β€” literally just "Scan file prerequisites", that's the whole job, no cap.

πŸ¦‹ SYNOPSIS πŸ¦‹

    % scandeps.pl *.pm          # Print PREREQ_PM section for *.pm
    % scandeps.pl -e 'STRING'   # Scan an one-liner
    % scandeps.pl -B *.pm       # Include core modules
    % scandeps.pl -V *.pm       # Show autoload/shared/data files
    % scandeps.pl -R *.pm       # Don't recurse
    % scandeps.pl -C CACHEFILE  # use CACHEFILE to cache dependencies

look at her go ✨ six whole vibes, pick your fighter.

πŸŽ€ DESCRIPTION πŸŽ€

scandeps.pl is a simple-minded little utility (her words, not mine, she's humble 😭) that prints out the "PREREQ_PM" section your modules need. it's giving helpful intern energy fr fr.

so here's the tea on the little marker letters πŸ‘‘

  • if you pass the option -T and you have CPANPLUS installed, modules that are part of an earlier module's distribution get marked with "S" β€” and modules with no distribution name on CPAN get marked with "?". iconic little badges tbh.
  • also, if you specify the -B option, any module that belongs to a perl distribution on CPAN (meaning it's, like, uninstallable by "CPAN.pm" or "CPANPLUS.pm") gets marked with "C".
  • finally (!!), modules that have loadable shared object files β€” usually the ones that need a compiler to install, tragic β€” get marked with "X". and with the -V flag, those files (plus all the other files found) get listed before the main output, so you see the receipts first πŸ’…

additionally, all the module files that the scanned code depends on but that were not found (and therefore not scanned recursively) get listed too. and bestie, listen, these may include genuinely missing modules or false positives β€” meaning modules your code does not depend on (on this particular platform) but that the heuristic picked up anyway πŸ™ˆ she's doing her best.

πŸ’– OPTIONS πŸ’–

  • -e, --eval=STRING β€” scan STRING as a string containing perl code. one-liner mode, we love her.
  • -c, --compile β€” compiles the code and inspects its %INC, in addition to static scanning. so, like, actually runs the compile step, not just vibes.
  • -x, --execute β€” executes the code and inspects its %INC, in addition to static scanning. you may use --xargs to specify @ARGV when executing the code. living dangerously, respectfully πŸ’€
  • --xargs=STRING β€” if -x is given, splits the "STRING" using the function shellwords from Text::ParseWords and passes the result as @ARGV when executing the code.
  • -B, --bundle β€” include core modules in the output and in the recursive search list. core modules get to sit with us now 🫢
  • -R, --no-recurse β€” only show dependencies found in the files listed, and do not recurse. stay in your lane, but make it fashion.
  • -V, --verbose β€” verbose mode: outputs all files found during the process; shows dependencies between modules and availability. additionally, warns of any missing dependencies. if you find missing dependencies that aren't really dependencies, you have probably found false positives β€” congrats, you found the ghosts πŸ‘»
  • -C, --cachedeps=CACHEFILE β€” use CACHEFILE to speed up the scanning process by caching dependencies. creates CACHEFILE if it does not exist yet. it will simply manifest itself ✨
  • -T, --modtree β€” retrieves module information from CPAN if you have CPANPLUS installed.

🌈 SEE ALSO 🌈

Module::ScanDeps, CPANPLUS::Backend, PAR β€” go read those next, iykyk πŸ“š

πŸ“ ACKNOWLEDGMENTS πŸ“

Simon Cozens, for suggesting this script to be written. king behavior fr fr πŸ‘‘

πŸ’œ AUTHORS πŸ’œ

Audrey Tang <autrijus@autrijus.org>

Copyright 2003, 2004, 2005, 2006 by Audrey Tang <autrijus@autrijus.org>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See <http://www.perl.com/perl/misc/Artistic.html>


okay that's the whole page, no notes πŸ’… just remember: same terms as Perl itself, don't be weird about it.

and that's a wrap bestie πŸŽ€ this was perl v5.42.0, dated 2024-03-08, page SCANDEPS(1) β€” go scan something and slay βœ¨πŸ¦‹

πŸ“¦ where this page comes from