in reply to Single Quotes Versus Double Quotes

Everyone seems to be right. The difference is tiny.
use strict; use warnings; use Benchmark ('cmpthese'); cmpthese(1000000, { double => \&dq, single => \&sq, none => \&nq }); sub dq { my $str = "a" x 100; my $new_val = "$str"; } sub sq { my $str = "a" x 100; my $new_val = '$str'; } sub nq { my $str = "a" x 100; my $new_val = $str; }
Produces
Rate double single none double 1030928/s -- -10% -15% single 1149425/s 11% -- -6% none 1219512/s 18% 6% --


grep
One dead unjugged rabbit fish later

Replies are listed 'Best First'.
Re^2: Single Quotes Versus Double Quotes
by ikegami (Patriarch) on Oct 12, 2006 at 16:43 UTC
    You're comparing assinging a string of 4 characters to assigning a string of 100 characters. I don't see the relevance to the topic at hand. Here's a more relevant benchmarks.
    Compile-time difference Rate single double single 30027/s -- -0% double 30160/s 0% -- Run-time difference Rate single double single 5968932/s -- -13% double 6893402/s 15% -- Rate double single double 6218672/s -- -12% single 7062848/s 14% --

    I'm getting lots of variation in the run-time results. The differences are probably due to external sources. Since the opcodes are the same, they should take the same amount of time.

    use strict; use warnings; use Benchmark qw( cmpthese ); my $as = 'a' x 100; sub c_dq { eval "\$a = \"$as\";"; } sub c_sq { eval "\$a = '$as';"; } eval "sub r_dq { \$a = \"$as\"; }"; eval "sub r_sq { \$a = '$as'; }"; print("Compile-time difference\n"); cmpthese(-3, { double => \&c_dq, single => \&c_sq, }); print("Run-time difference\n"); cmpthese(-3, { double => \&r_dq, single => \&r_sq, });