Usage of Var

The main difference between wire and logic is how they behave in the following case:

wire a = b;
logic a = b;

The first case is equivalent to a continuous assignment:

wire a;
assign a = b;

The second case is equivalent to initialization at time 0:

logic a;
initial a = b;

Note that in the second case logic behaves just like reg:

reg a;
initial a = b;

Interestingly enough, this difference is not covered in many tutorials and even senior engineers are frequently not aware of it.