It could be $EnvVar1 and 2 are in fact not initialized and that is the complaint.
Is this what you’re trying to say?
my $EnvVar1 = ($EnvVar1 || "DefaultValue1");
my $EnvVar2 = ($EnvVar2 || "DefaultValue2");
my $Var3 = "$EnvVar1 -- $EnvVar2";
English:
If for some
reason $EnvVar1 doesn’t have a value, use the value
“DefaultValue1”