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]