in reply to Need Help in Understanding Some Code - Map and Scalar Questions
Is it saying "For each item found in $req->path that is a number save it as a hash key of %pids?"
Yes. The argument ($req->path =~ /(\d+)/g;) is evaluated first, and it returns a list of numbers. map then pairs each number of the list (say 1,2,3) with "1"s (1=>1,2=>1,3=>1). That's assigned to the hash.
but to be honest with you I do not know exactly what this will do to the hash.
A hash in scalar context evaluates to something false if the hash is empty, or to some statistics about the hash if it's not.
(Starting with 5.12.? or 5.14.0, this is optimised to not create the statistics string if a boolean value is expected, returning a simple true value instead.)
The other thing that confuses me is next if scalar(%pids) and not $pids{$proc->pid};
Do the the next iteration of the loop if the hash isn't empty and the hash doesn't contain the $proc's pid.
|
|---|