That makes me wonder - what version of Perl are you using and on which OS?
Here's what I get:

$ perl -v

This is perl 5, version 18, subversion 2 (v5.18.2) built for
darwin-thread-multi-2level

(with 2 registered patches, see perl -V for more detail)




On Fri, Jul 31, 2015 at 12:39 PM, David Emanuel da Costa Santiago <
deman...@gmail.com> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
>
>
> Hello.
>
>
> Thanks for your reply.
>
>
> I remember that i did some performance tests and
>
> $string = $string ."something"
>
> had better performance than
>
> $string .= "something"
>
> which matched the results of (link to stack overflow)
> http://stackoverflow.com/questions/3104493/performance-with-perl-strings
>
>
> I'm going to try your suggestions an i will report back.
>
>
>
> Best regards,
> David Santiago
>
>
>
>
> Em Thu, 30 Jul 2015 16:56:31 -0400
> Uri Guttman <u...@stemsystems.com> escreveu:
>
> > On 07/30/2015 04:14 PM, David Emanuel da Costa Santiago wrote:
> > >
> > > my @YENC_CHAR_MAP = map{($_+42)%256;} (0..0xffff);
> > > my $YENC_NNTP_LINESIZE=128;
> > >
> > > sub _yenc_encode{
> > >    my ($string) = @_;
> > >    my $column = 0;
> > >    my $content = '';
> > >
> > >    my @hexString = unpack('W*',$string); #Converts binary string to
> > > hex
> > >    for my $hexChar (@hexString) {
> > >      my $char= $YENC_CHAR_MAP[$hexChar];
> > >
> > when checking multiple values like this use a hash. it will be
> > quicker than all those == ops. or even a array using ord() for the
> > index. you can populate it outside the sub like this:
> >
> > my @is_special ;
> > $is_special[0] = 1 ;    # NUL
> > $is_special[10] = 1 ;    #LF
> > >     #null || LF || CR || =
> > >      if ($char == 0 || $char == 10 || $char == 13 || $char == 61 ||
> > >
> > >     # TAB || SPC
> > >     (($char == 9 || $char == 32) && ($column ==
> > > $YENC_NNTP_LINESIZE || $column==0)) ||
> > >
> > >     ($char==46 && $column==0) # .
> > then a single check will do:
> >
> >      if ( $is_special[$char] && blah blah ) {
> >
> >
> > >     ) {
> > >
> > >        $content =$content. '=';
> > ever heard of .=? it is one of my favorite perl ops. it just means
> > append. building strings is best done with .=. in fact a rule i use
> > is for one sub to build some result string but its caller decides
> > what to do with it. that way you can print, log, email, whatever to
> > the string and not change the builder code. output should be done
> > only when you have the full result as then you can decide what to do
> > with the result. too often you see code where text is generated and
> > output immediately. when they need to fork the output they have to
> > resort to tied handles and other wacky stuff. the rule to remember is
> >
> >       print rarely, print late.
> > >        $column+=1;
> > >
> >      $column++ ;
> > >        $char=($char + 64);#%256;
> > you used += before so why not there too?
> >
> > also use more horizontal white space to make your code easier to read.
> > >      }
> > >
> > >      $content = $content.chr $char;
> > like that looks like a .method call but perl doesn't use that
> > syntax. .= is the win here again.
> > >
> > >      $column+=1;
> > >
> > >      if ($column>= $YENC_NNTP_LINESIZE ) {
> > you can merge thos two lines:
> >          if( ++$column >= $YENC_NNTP_LINESIZE ) {
> > >        $column=0;
> > >        $content = $content."\r\n";
> > .= again. see how common its usage is? because it is a assignment op
> > which some newbies don't learn early on, it is missed. it is just
> > append and simple and very needed in almost all code that builds up
> > text.
> >
> > uri
> >
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2
>
> iQEcBAEBCAAGBQJVu158AAoJEJ/OLjwuDYzKOoYH/2SAEQJu2q0j6fcGywhKV+kA
> KGOWgtVSCgwiTQyVDqhrOI2EJr2PSW/7/iwVB7pMdVI1OrFsJyH+q0YoGbWMV9Mf
> sl6nONanVGobdF/B1liDtdGchr6UtoO2QK5Elz2PWjtHiC2zgQEw2qYw+p72EJtW
> 4dXA7QdmtXyiABby3WcZr1mZ1D8SbqUtiJ48DWjcR1hA7mAcz8Erda9hm8jT+L5J
> yiviE1gieA6BUXT2Ri6VzqX7/ScUO0JVTpHkqu2IGIzaXuqqV7kkOuihCwhN30EB
> vV1Dt/WFcsdD/c3KFB4il/HBZxPfiY5/gHDTcsOn4fkqj6xy+qFs0p9vpIwvux0=
> =SGdA
> -----END PGP SIGNATURE-----
>



-- 
Andrew Solomon

Mentor@Geekuni http://geekuni.com/
http://www.linkedin.com/in/asolomon

Reply via email to