Rob Coops am Freitag, 25. November 2005 14.13: > Making the subs shorter will maybe help a little in the speed of processing > but it will make it a lot more difficult for the person that gets to take > over the maintanace. When you know what you are doing and why it is easy to > read it, but when you get a big program written like that and are asked to > support it... you will go looking for the guy that wrote it and give him a > good old kick in the .... because of all the headache he cost you. > So unless this is a very personal script that will not ever be handed over > to anyone and your memory is good enough to remember what you are doing > where and why please make sure you do not write subs like that unless you > are very good at documenting your code as you are writting it.
Hi Rob [see inline] > On 11/25/05, John Doe <[EMAIL PROTECTED]> wrote: > > Lorenzo Caggioni am Freitag, 25. November 2005 11.04: > > > Attached you can find the code an a input file to try it. > > > [...] > > d) shorten some subs > > > > sub fmtCurrencyCodeTEST { > > my($xCurr) = "EUR"; > > return $xCurr; > > } > > => > > sub fmtCurrencyCodeTEST {'EUR'} > > > > sub fmtTLGATTR2_int_natTEST { > > my ($xServiceCode,$xInputCDR) = @_; > > return $xInputCDR->[20]; > > } > > => > > sub fmtTLGATTR2_int_natTEST {$_[1]->[20]} > > > > etc. [...] Ok, making subs shorter with less local variables won't improve performance significantly. That's why a listed it at the end :-) Concerning bad maintanability, I don't see much problems in my examples, since there is no obfuscating of algorithms and such, but only direct access to the arguments - the difference is not very big. And of course a sub should be documented: - purpose - side effects - parameter description - description of the return values - (etc.) Compare: # purpose: return currency # in: -- # out: constant string 'EUR' # sub fmtCurrencyCodeTEST { my($xCurr) = "EUR"; return $xCurr; } # purpose: return currency # in: -- # out: constant string 'EUR' # sub fmtCurrencyCodeTEST {'EUR'} In this example, you could even omit the comments, since it's obvious what's the purpose of the sub. Have a look into the perl source; you will find lots of such examples. greetings, joe -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>