Программист Perl, вероятно, написал бы это как:
print "surname=$myVal\n";
Похоже, он делает то же самое, не так ли?И в вашем примере это делает то же самое.Разница становится более очевидной, если заменить скалярную переменную на массив.
my @var = qw(some data);
print "value=", @var, "\n";
print "value=". @var. "\n";
Разница заключается в количестве аргументов, передаваемых в функцию печати.Если вы используете оператор конкатенации (.), Тогда ваши аргументы объединяются в одну строку, и print получает один аргумент.Если вы используете запятую, то print получает список аргументов.
Конечно, можно смешивать методы в одном вызове печати.
print "surname=" ,$myVal . "\n";
Еще один хороший пример - использованиевозвращаемое значение из местного времени.
print 'The time is ', localtime, "\n";
print 'The time is '. localtime, "\n";