Linux – -w What specifies in perl script process execution

-w What specifies in perl script process execution… here is a solution to the problem.

-w What specifies in perl script process execution

When I check the perl process with ps aux |, grep perl lists the perl pid, which waits in the queue. So I started looking at how the process started /usr/local/bin/processLogs. I wonder what -w means in this procedure to execute /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

Solution

If you run perl -h, you get a help menu that says: for -w

  -w                enable many useful warnings

This simply enables the warning. If this program runs in an automatic process, warnings may be redirected to a log where you can read them. Suppose there are any warnings. You will need to reference the program file processLogs to see what the program does.

Typically, experienced users do not use -w, preferring to use lexical-scoped use warnings.

Full output:

$ perl -h

Usage: perl [switches] [--] [programfile] [arguments]
  -0[octal]         specify record separator (\0, 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.

Related Problems and Solutions