Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Software development.docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
324.44 Кб
Скачать

Замена в текстовом файле

После построкового чтения из файла в массив строк и модификации некоторых строк внутри массива, изменения не перепишутся в файл автоматически. Для создать/открыть новый файл для записи и уже туда построчно записать новый, модифицированный строковый массив. Или же, если требуется модифицировать текущий файл без создания копии, закрыть его для чтения, открыть для записи и далее, как в первом случае.

Запись в файл осуществляется всё той же функцией print, только между названием функции и объектом печати (это может быть как скаляр, так и массив, см. ниже) ставится имя дескриптора записываемого файла.

open (DI, ">", “Output.txt”) || die "Couldn't open file for recording: $!";

print DI @Str;

Функции работы со строками

1. chop СТРОКОВЫЙ МАССИВ | СТРОКОВЫЙ СКАЛЯР

Удаляет последний символ в строке (или во всех строках в случае массива строк). Обычно это символ конца строки, если строка была считана из текстового файла непоследней. Возвращает число удалённых символов.

2. chomp СТРОКОВЫЙ МАССИВ | СТРОКОВЫЙ СКАЛЯР

То же, что и chop, только сначала проверяет, является ли символ концом строки. Если не является, то функция ничего не делает. Это позволяет в определённых случаях «не отрезать лишнего».

3. splice МАССИВ, СМЕЩЕНИЕ [, ДЛИНА [, СПИСОК]]

Удаляет элементы массива указанной длины, начиная со смещения. Заменяет их указанным списком. Возвращает удалённый список. Если замещающий список не задан, то просто удаляет все указанные строки. Если не задана длина, то удаляется всё от смещения до конца массива.

Смещение, как и при обращении к элементам массива, может быть отрицательным. Например, следующее выражение удалит две последние строки из массива @Str

splice @Str, -2;

Вставку одной строки или массива строк в другой массив осуществляется следующим образом:

splice @Str,0,0,@InsMas; # Вставка массива InsMas в начало массива Str

splice @Str,2,0,$InsStr; # Вставка строки InsStr после второй строки массива Str

4. substr ВЫРАЖЕНИЕ, СМЕЩЕНИЕ [, ДЛИНА [,ЗАМЕНА]]

Возвращает подстроку из указанного выражения, начиная со смещения, указанной длины и заменяет её указанной заменой. Действие substr внутри строки (или строкового выражения) аналогичны действию splice в строковом массиве.

5. length ВЫРАЖЕНИЕ

Вычисляет длину выражения в байтах. Как правило, используется для вычисления длины строки. При считывании непоследней строки из текстового ASCII-файла необходимо учесть, что такая строка в конце содержит символ конца строки, который увеличивает её длину на 1.

6. lc|uc|lcfirst|ucfirst ВЫРАЖЕНИЕ

Предназначены для преобразования строчных букв в прописные и наоборот.

lc – все буквы будут строчными, uc –прописными. lcfirst – первая буква в строке (или строковом выражении) будет строчной, ucfirst – прописной. Если первый символ в строке не является буквой, то он игнорируется. В этом случае lcfirst и ucfirst не изменят регистр первого попавшегося буквенного символа.

7. join ВЫРАЖЕНИЕ | СПИСОК

Объединяет отдельные строки списка, используя в качестве разделителя значение выражения. Возвращает объединённую строку.

8. split [/ОБРАЗЕЦ/[, ВЫРАЖЕНИЕ[, ЛИМИТ]]]

Разбивает строку ВЫРАЖЕНИЕ на отдельные строки, используя в качестве разделителя образец, задаваемый регулярным выражением ОБРАЗЕЦ. В списковом контексте возвращает массив полученных строк, в скалярном контексте — их число.

Если присутствует параметр ЛИМИТ, то он задает максимальное количество строк, на которое может быть разбита исходная строка. Отрицательное значение параметра ЛИМИТ трактуется как произвольно большое положительное число.

Если параметр ВЫРАЖЕНИЕ опущен, разбивается строка $_. Если отсутствует также и параметр ОБРАЗЕЦ, то в качестве разделителей полей используются пробельные символы после пропуска всех начальных пробельных символов. К пробельным символам относятся пробел, символ табуляции, возврат каретки, символ перевода строки и символ перевода страницы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]