You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Perrin Harkins <pe...@primenet.com> on 2000/06/07 22:33:30 UTC
[OT] Re: [performance/benchmark] printing techniques
On Wed, 7 Jun 2000, Matt Sergeant wrote:
> On Wed, 7 Jun 2000, Eric Cholet wrote:
>
> > This said, i hurry back to s/"constant strings"/'constant strings'/g;
>
> Those two are equal.
Yes, although it's counter-intutive there's no real performance hit
from double-quoting constant strings.
The one that bugs me is when I see people doing this:
$hash{"$key"}
instead of this:
$hash{$key}
That one is actually in the perlfaq man page, but I still see it all the
time. The performance difference is very small but it does exist, and you
can get unintended results from stringifying some things.
- Perrin
Re: [OT] Re: [performance/benchmark] printing techniques
Posted by Mike Lambert <mi...@home.com>.
> Sometimes it's worse than just ugly. See the entry in the Perl FAQ:
>
http://www.perl.com/pub/doc/manual/html/pod/perlfaq4.html#What_s_wrong_with_
always_quoting
>
> Not likely that anyone would be using something as a hash key that would
> suffer from being stringified, but possible. It's definitely a bit slower
> as well, but that's below the noise level.
Actually, when you use a reference as a hash key, it is automatically
stringified anyway.
http://www.perl.com/pub/doc/manual/html/pod/perlfaq4.html#How_can_I_use_a_re
ference_as_a_h
So that means that: $hash{"$key"} and $hash{$key}differ only in the relative
merits of their beauty. :)
Mike Lambert
Re: [OT] Re: [performance/benchmark] printing techniques
Posted by Matt Sergeant <ma...@sergeant.org>.
On Thu, 8 Jun 2000, Perrin Harkins wrote:
> On Thu, 8 Jun 2000, Matt Sergeant wrote:
>
> > > The one that bugs me is when I see people doing this:
> > >
> > > $hash{"$key"}
> > >
> > > instead of this:
> > >
> > > $hash{$key}
> >
> > Those two now also result in the same code. ;-)
> >
> > But the former is just ugly.
>
> Sometimes it's worse than just ugly. See the entry in the Perl FAQ:
> http://www.perl.com/pub/doc/manual/html/pod/perlfaq4.html#What_s_wrong_with_always_quoting
>
> Not likely that anyone would be using something as a hash key that would
> suffer from being stringified, but possible. It's definitely a bit slower
> as well, but that's below the noise level.
It's not slower in 5.6. "$x and $y" in 5.6 gets turned into $x . ' and '
. $y (in perl bytecode terms).
--
<Matt/>
Fastnet Software Ltd. High Performance Web Specialists
Providing mod_perl, XML, Sybase and Oracle solutions
Email for training and consultancy availability.
http://sergeant.org http://xml.sergeant.org
Re: [OT] Re: [performance/benchmark] printing techniques
Posted by Perrin Harkins <pe...@primenet.com>.
On Thu, 8 Jun 2000, Matt Sergeant wrote:
> > The one that bugs me is when I see people doing this:
> >
> > $hash{"$key"}
> >
> > instead of this:
> >
> > $hash{$key}
>
> Those two now also result in the same code. ;-)
>
> But the former is just ugly.
Sometimes it's worse than just ugly. See the entry in the Perl FAQ:
http://www.perl.com/pub/doc/manual/html/pod/perlfaq4.html#What_s_wrong_with_always_quoting
Not likely that anyone would be using something as a hash key that would
suffer from being stringified, but possible. It's definitely a bit slower
as well, but that's below the noise level.
- Perrin
Re: [OT] Re: [performance/benchmark] printing techniques
Posted by Matt Sergeant <ma...@sergeant.org>.
On Wed, 7 Jun 2000, Perrin Harkins wrote:
> On Wed, 7 Jun 2000, Matt Sergeant wrote:
>
> > On Wed, 7 Jun 2000, Eric Cholet wrote:
> >
> > > This said, i hurry back to s/"constant strings"/'constant strings'/g;
> >
> > Those two are equal.
>
> Yes, although it's counter-intutive there's no real performance hit
> from double-quoting constant strings.
>
> The one that bugs me is when I see people doing this:
>
> $hash{"$key"}
>
> instead of this:
>
> $hash{$key}
Those two now also result in the same code. ;-)
But the former is just ugly.
--
<Matt/>
Fastnet Software Ltd. High Performance Web Specialists
Providing mod_perl, XML, Sybase and Oracle solutions
Email for training and consultancy availability.
http://sergeant.org http://xml.sergeant.org