leohan said:
Tad McClellan ??: ^^^^^^^
^^^^^^^
It is not yet finished, it now in progress,
I thought you said yours was named LintEX, I'm trying to find
the Lint module that you mention, there are a bunch of them:
B::Lint
Test::HTML::Lint
HTML::Lint
MARC::Lint
Apache::Lint
But there *are no* modules named simply "Lint"...
You must have meant the B::Lint module, as you've copied its
docs into your PDF.
I didn't heard about B::Lint:
luggable before,
You are developing a module named "Lint" but you didn't search
CPAN to see other modules named "Lint"?
That seems an inefficient development method...
I did this presentation in my laboratory this morning, and I had no
time to post it
as POD.
You should have started with POD. You could probaby get "pod2pdf"
to generate your slides for you from the pod.
then, should I change the "Errors" to "fault"?
I would use "warnings" instead of "errors".
The standard docs (eg. perldiag.pod) for Perl make this same distinction.
You didn't comment on my comment there.
Let me restate my comment:
Your module should not warn about things that are reasonable
in error-free code.
It is reasonable to redirect STDOUT.
Otherwise, folks that want to do this reasonable thing will not
make use of your module.
(Personally, I think this idea is a bit of "The Boy Who Cried Wolf",
I doubt that I would ever use a module that spit out 20 warnings
when my response to 18 of them is "I _meant_ to do that" while
only 2 actually find something worth changing.
)
It should. Shouldn't it?
no, but do you mean some thing like following die expression?
open IN, "file" or die "warning: no file";
Yes. Or something like:
unless ( open IN, "file" )
{ do something, maybe call die() }
or
return unless open IN, "file";
Basically, it should warn whenever open() is not in a "boolean context".
yes, my module is warn at this case.
Ack!
So if someone wants to use your module, and have it report nothing,
they must keep track of every variable name in their entire program
to ensure that they don't use a different variable with the same name?
Now I'm to the point that I doubt I would even bother to install
the module, let alone use it.
my God, that my stupid mistake. I'm not from English speaking country,
so
I made such mistake...
No problem.
Thanks for your kindness to correct this.
You're welcome.
I have a good bit of experience decoding English-from-a-Korean-speaker,
because that is how my wife speaks.
I'm not too sure that you understand the profound difference
between "declare" and "define". Please keep at it until you
see how they are very very different.
is it worthwhile? what is the problem?
the hard-to-read:
"C:\\Program Files\\Sell Your Soul"
becomes the less-hard-to-read:
'C:\Program Files\Sell Your Soul'
But the most important reason is that it an opportunity to
indicate your intent:
'the cost is $100'
where $100 is intended to be literal, while
"the cost is $100"
means you better have a pattern with at least 100 set of
parenthesis in your program.
When debugging:
Single quotes mean "no variable here, no need to pay close attention
to the contents of this string".
Double quotes mean "might be a variable in here, better look carefully"
so:
my $str = "this is a pretty long string. it takes a long time to read";
"tricks" the maintenance coder into spending more time on this
line of code than would be needed had the original programmer written:
my $str = 'this is a pretty long string. it takes a long time to read';
do you mean my module should warn all these simple variable names?
No, I mean that it should warn only for those 2 exact names,
because they are "special variables" used by the sort() function.
do you mean using subroutine like following should warn?
Yes.
why?
perldoc -q "&"
What's the difference between calling a function as &foo and foo()?
But do you really think that these kind of light weight analyzer useful
in perl world?
No, in my opinion.