То, что вы написали, вроде нормально, за исключением того, вы не можете использовать эти обозначения в Perl lines1.length
, int $i
и ~=
не является оператором, вы имеете в виду =~
, но это не тот инструмент здесь. Также if
должен иметь блок { }
после него.
Для того чтобы получить размер массива, my $i
, вы должны указать лексическую переменную и eq
для сравнения строк. Наряду с if (...) { ... }
.
Технически вы можете использовать привязки оператор для выполнения сравнения строк, например:
"foo" =~ "foobar"
Но это не очень хорошая идея, когда сравнения строковых строк, потому что вы можете получить частичные совпадения, и вы должны избегать метасимволов. Поэтому проще просто использовать eq
.
Использование C-стиль для петель является допустимым, но более Perl-иш способ заключается в использовании этого обозначения:
for my $i (0 .. $#lines1)
Каким будет перебирать в диапазоне от 0 до максимального индекса массива.
Кроме того, блок 'if' требует' {...} 'брекетов. –