Ребята, привет всем!
Мне нужна ваша помощь в очень простом вопросе.
Есть содержимое файла:
| Код | string1 string2 string3
|
Есть скрипт, работающий с этим файлом:
| Код | if(scalar(@ARGV) == 0) { print "None of file paths is specified!"; exit; } # for all the specified files for ($i = 0; $i < @ARGV; $i++) { $file_path = $ARGV[$i]; open(IN, $file_path) || die; # read next file while ($line = <IN>) { $line =~ m/^[^\s].+$/; print $& . "\n"; } close (IN); }
|
Соответственно, после выполнения скрипта я ожидаю вывод:
Вместо этого получаю
Так как во втором проходе условие регулярного выражения не выполняется, то переменная $& сохраняет свое значение от предыдущего прохода ("string1"), что и выводится на печать.
Вопрос: как правильно поступать в подобных случаях? Очистить содержимое переменной $& невозможно, она readonly. Подскажите, пожалуйста, никак не могу найти этого в справочниках. |