Если Вы запишете Perl с use strict;
, то Вы найдете, что один синтаксис строки не допустим, даже когда объявлено.
С:
my ($newstring = $oldstring) =~ s/foo/bar/;
Вы добираетесь:
Can't declare scalar assignment in "my" at script.pl line 7, near ") =~"
Execution of script.pl aborted due to compilation errors.
Вместо этого синтаксис, который Вы использовали, в то время как строка дольше, синтаксически корректный способ сделать это с use strict;
. Для меня, с помощью use strict;
просто привычка теперь. Я делаю это автоматически. Все должны.
#!/usr/bin/env perl -wT
use strict;
my $oldstring = "foo one foo two foo three";
my $newstring = $oldstring;
$newstring =~ s/foo/bar/g;
print "$oldstring","\n";
print "$newstring","\n";
Вы, вероятно, уже знаете это, но в большинстве случаев вы можете просто сохранить, затем Ctrl-Z, чтобы перейти в оболочку, а затем fg, чтобы вернуться в vim.