On Thursday 19 Nov 2009 16:54:00 gaochong wrote:
> Now I have see the following page ,but I have some question and need help .
>
> http://www.cpan.org/authors/id/S/SU/SUJAI/Process-Detail-0.1.pl
>
From a quick look, this script seems awful:
1. No "use strict;" and "use warnings;".
2. uses "Switch.pm".
3. Uses bareword file-handles.
4. No three-args open.
I would suggest to avoid using it because it's not modern perl.
>
>
> first,what is the meaning of if($pcs =~ /(\d+)/ && $pcs =~ /\./) ,I can’t
> understand the re /\./
>
"." matches any character (except possibly newline, etc., but sometimes also
that if you use m{...}s). "\." inside a regex matches an actual "." (period,
dot, full stop etc. - http://en.wikipedia.org/wiki/Full_stop )
>
>
> sub hidden
>
> {
>
> print "\n##########Hidden processlist###############\n\n";
>
> foreach $pcs (readdir(DIR))
>
> {
>
> if($pcs =~ /(\d+)/ && $pcs =~ /\./)
>
> {
>
> &detailedview("$pcs");
>
> }
>
> }
>
> }
>
>
>
> the second , @array=split(/([A-Z]+(_|[A-Z])+\=.[^A-Z]+)/,$_);
> also the re \=.[^A-Z]+ what’s it ?
\= is an actual "=". A "=" would be fine here, too. "." is any character
except a newline. "[^A-Z]" is any character except the uppercase Latin ASCII
letters ("A", "B", "C"..."Z"). "+" is "one or more" when applied to the
suffix. You can see signs of "ancient perl" in this expression, because it
uses several capturing parentheses ("(...)") instead of clustering ones
("(?:...)").
http://www.shlomifish.org/lecture/Perl/Newbies/lecture2/regexps/next_step.html
>
>
>
>
>
> open(FILE,"<$envir");
This should better be:
<<<
open my $file, "<", $envir
or die "....$!";
>>>
This script is horrible. Avoid it.
Regards,
Shlomi Fish
> while(<FILE>)
> {
> @array=split(/([A-Z]+(_|[A-Z])+\=.[^A-Z]+)/,$_);
>
> thanks
>
--
-----------------------------------------------------------------
Shlomi Fish http://www.shlomifish.org/
http://www.shlomifish.org/humour/ways_to_do_it.html
Chuck Norris read the entire English Wikipedia in 24 hours. Twice.
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/