-w 在 perl 脚本进程执行中指定什么

what does -w specifies in perl script process execution

当我使用 ps aux | grep perl 检查 perl 的进程时,perl pid 列表列在队列中的等待位置。所以我开始研究这个过程是如何启动的 /usr/local/bin/processLogs。我想知道 -w 在此过程执行中的含义 /usr/bin/perl -w /usr/local/bin/processLogs.

[root@test]# ps aux | grep perl
root      4223  1.6  0.0 132560  4576 ?        R    03:11   1:06 /usr/bin/perl -w /usr/local/bin/processLogs
root      4233  1.3  0.0 132560  4552 ?        R    03:11   0:55 /usr/bin/perl -w /usr/local/bin/processLogs
root      4246  1.1  0.0 132560  4552 ?        R    03:11   0:49 /usr/bin/perl -w /usr/local/bin/processLogs
root      4259  1.0  0.0 132560  4548 ?        R    03:11   0:44 /usr/bin/perl -w /usr/local/bin/processLogs
root      4272  0.8  0.0 132560  4544 ?        R    03:11   0:33 /usr/bin/perl -w /usr/local/bin/processLogs
root      4288  0.6  0.0 132560  4580 ?        R    03:11   0:28 /usr/bin/perl -w /usr/local/bin/processLogs

如果您 运行 perl -h 您将获得帮助菜单,其中显示 -w:

  -w                enable many useful warnings

这只是启用警告。如果此程序 运行 在一个自动进程中,警告可能会被重定向到一个日志,您可以在其中阅读它们。假设有任何警告。您将需要参考程序文件 processLogs 以查看程序的功能。

通常,有经验的用户不会使用 -w,而是更喜欢使用词法范围的 use warnings

完整输出:

$ perl -h

Usage: perl [switches] [--] [programfile] [arguments]
  -0[octal]         specify record separator ([=11=], if no argument)
  -a                autosplit mode with -n or -p (splits $_ into @F)
  -C[number/list]   enables the listed Unicode features
  -c                check syntax only (runs BEGIN and CHECK blocks)
  -d[:debugger]     run program under debugger
  -D[number/list]   set debugging flags (argument is a bit mask or alphabets)
  -e program        one line of program (several -e's allowed, omit programfile)
  -E program        like -e, but enables all optional features
  -f                don't do $sitelib/sitecustomize.pl at startup
  -F/pattern/       split() pattern for -a switch (//'s are optional)
  -i[extension]     edit <> files in place (makes backup if extension supplied)
  -Idirectory       specify @INC/#include directory (several -I's allowed)
  -l[octal]         enable line ending processing, specifies line terminator
  -[mM][-]module    execute "use/no module..." before executing program
  -n                assume "while (<>) { ... }" loop around program
  -p                assume loop like -n but print line also, like sed
  -s                enable rudimentary parsing for switches after programfile
  -S                look for programfile using PATH environment variable
  -t                enable tainting warnings
  -T                enable tainting checks
  -u                dump core after parsing program
  -U                allow unsafe operations
  -v                print version, patchlevel and license
  -V[:variable]     print configuration summary (or a single Config.pm variable)
  -w                enable many useful warnings
  -W                enable all warnings
  -x[directory]     ignore text before #!perl line (optionally cd to directory)
  -X                disable all warnings

Run 'perldoc perl' for more help with Perl.