I'm mildly suprised that no-one caught the problem in the following line:
$process = qr/\s+(?:\d+[:])+?\d+\s+.*?$ARGV[0].*?\s*$/;
Because I'm using user input in a regexp, I should have done one of the following:
I chose to go with the eval { ... } version mainly because I actually want regexp functionality on the command line.# use \Q and \E $process = qr/\s+(?:\d+[:])+?\d+\s+.*?\Q$ARGV[0]\E.*?\s*$/; # or enclose in an eval eval { $process = qr/\s+(?:\d+[:])+?\d+\s+.*?$ARGV[0].*?\s*$/; }; if($@) { ... }
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |