in reply to Is there a difference in this declaration?

The only difference that I could possibly see between the two is one of clarity to the (human) reader.   You are expressly saying that the hash-variable is defined and that it contains nothing.   (Saying what is already true, but ... saying it.)   Does that make a difference to the computer?   Pragmatically, no.   Might it make a difference of understanding to the team?   Perhaps, such that if, or if not, I saw that to be the coding team’s standard practice, I would not tell them that they ought to change it to be otherwise.

Micro-optimization of code is a very annoying practice, in my view, because it tends to sacrifice the one thing that really does matter in the long run:   simple clarity.   It can prompt you to do things in the name of microseconds that seriously impede the future maintaining of that code.   And, it can distract the team to go chasing after a rabbit that’s a scrawny hunk-of-fur at best.   In nearly (but, not quite) every situation, the real thing that eats your lunch is I/O ... either directly, or implicitly in the form of page-faults.   (The latter much less significant these days since memory has become gigantic.)   Squibbling over microseconds, as Benchmark encourages one to do, is almost (but, not quite) always not a good thing to waste, uhhh, hours over.

Replies are listed 'Best First'.
Re^2: Is there a difference in this declaration?
by Monk::Thomas (Friar) on May 13, 2014 at 08:44 UTC

    Regarding team/environment:

    If the OP's team is exposed / used to C-style programs where initialization must be done or BadStuffHappens(TM), then I'd go for the explicit initialization in order to reduce mental context switching.

    If the OP's team is used to Perl or similar languages then I'd go for brevity and skip the explicit initalization since it leads to shorter code. ('short' as in 'as short as necessary', not as in 'as short as possible')

    Or one could argue that you (generic you) should always go for a perlish mindset and remove anything non-perlish. Pick an option that's suitable to you and your team and apply it consistently - TMTOWTDI...