Perl programming is like the Breakfast Bar at Shoneys! Take what you want and leave 
the rest.

Ask questions, ask questions, ask questions.

-----Original Message-----
From: "Janek Schleicher"<[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Date: Wed Jun 12 01:42:23 PDT 2002
Subject: Re: form display problem

>Ahammell wrote at Wed, 12 Jun 2002 05:32:19 +0200:
>
>> Janek Schleicher wrote:
>>> It's a real crime to copy source code.
>
>I missed to say :-). Sorry.
>                             
>>> Here you see why.
>>> 
>>> Cheerio,
>>> Janek
>>> 
>>> 
>> Janek,
>>      Im sorry but I dont quite understand your statements. I sincerely hope
>> that you are not accusing me of copying source code. I truly dont know why you 
>would think that
>> and if you dont I apologize for this part of my response. I simply posted with a 
>question about my
>> source code that I thought someone could help with.
>> 
>
>I didn't mean that it is a crime to copy source code from another program.
>
>I mean't it is very dangerous to program with a copy+paste style.
>Why? First of all, if you have to make a change later, 
>then you should only have to change the code at ONE position.
>There's also a great danger that little errors are done by copying+paste.
>The source code posted here, showed some of the little errors:
>
>> >       if ($href->{st_name1} eq "$state") {
>> >       #print "$href->{quad_name}, $href->{st_name1}\n" ;
>> >       $state_hash{"$href->{quad_name}"} = "$href->{st_name1}" ;
>>                                                             ^
>> >       }
>> >       }
>> >       elsif ($href->{st_name2} eq "$state") {
>> >       #print "$href->{quad_name}, $href->{st_name1}\n" ;
>> >       $state_hash{"$href->{quad_name}"} = "$href->{st_name1}" ;
>                                                              ^
>
>As you can see, both if-constructs are nearly the same.
>In fact there's only one character different (st_name1 <=> st_name2).
>The constructs make only sense when in the assignment 
>the 1 is replaced by 2.
>Such little mistakes are typical for copying+paste - programming.
>
>It seems, that the author wanted to say:
>set the state of the hyperlink reference to quad_name to
>  the reference of st_nameX, where the reference to st_nameX is the $state.
>
>Instead of that, the code says something like:
>set the state ... of quadname ... to st_name1 if reference of st_name1 eq $state
>set the state ... of quadname ... to st_name2 if reference of st_name2 eq $state
>set the state ... of quadname ... to st_name3 if reference of st_name3 eq $state
>set the state ... of quadname ... to st_name4 if reference of st_name4 eq $state
>
>As you can see, the real idea is hidden.
>That's an alert signal.
>
>Well, you could say, I have to be more carefully when copying.
>I should write a short comment to explain the idea.
>But that's not the way. You'll become a better programmer avoiding doubled code.
>(Or just take BASIC - use goto; peek; poke; and randomness line numbering)
>Doubled code have a similar functionality - 
>that's why write a loop, subroutine, module, class, macro or use Perl's powerful eval.
>Of course it needs a little time -
>but you get it back later (with factor 3).
>
>As in the example above - you also could write a pseudocode like:
>
>foreach X (1 .. 4)
>  set the state of the hyperlink reference to quad_name to
>    the reference of st_nameX, if the reference to st_nameX is the $state.
>
>what should be possible to implement.
>
>
>I know it's hard, always to remember that I shouldn't copy code.
>In addition it's hard, when you're a programming newbie.
>So I always say - and that's simple to remember -
>that it is a real crime to copy code.
>
>
>Cheerio,
>Janek
>
>
>-- 
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>


___________________________________________________
GO.com Mail                                    
Get Your Free, Private E-mail at http://mail.go.com



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to