Анимация
JavaScript
|
Главная Библионтека чительно быстрее. Во-вторых, создание регулярных выражений для выполнения замены текста с фиксированной позиции в строке - это стрельба из пушки по воробьям; намного более элегантное решение - воспользоваться функцией substr. И, наконец, в-третьих, Perl относится к тому разряду языков программирования, где одну и ту же операцию можно выполнить разными средствами. Поэтому используйте то средство, которое вам больше нравится. Что произойдет, если " в качестве начальной позиции в функции substr (или index, или rindex) указать значение, в1ходящее за границы строки? Чем мне всегда нравились компьютеры, так это их удивительной терпимостью к разного рода экспериментам. Вместо того чтобы задавать вопрос из серии "Что будет, если...?", иногда проще самому поэкспериментировать и посмотреть, что получится. Возвращаясь к поставленному вопросу, стоит отметить, что обращение к несуществующей части строки приведет к появлению сообщения об ошибке use of undefined value (если включен режим выдачи предупреждений, а он у вас должен быть включен всегда!). При этом функция возвращает неонределенное значение. Например, при вынолнении кода $a="Foo"; substr($a,5); функция substr возвращает значение undef. Семинар Контрольныевопросы 1. Какое значение будет иметь переменная после выполнения следующего фрагмента кода? eA=qw(OBec горох бобы); shift §А; push gA, "ячмень"; pop; а) овес горох бобы; б) бобы ячмень; в) горох бобы ячмень. 2. Что делает оператор а) выводит число с плавающей точкой, занимающее 18 позиций (15 позиций до десятичной точки и 3 после нее); б) выводит число с плавающей точкой, занимающее 18 позиций до десятичной точки и 3 после нее; в) выводит число с плавающей точкой, занимающее 18 позиций (14 позиций до десятичной точки и 3 после нее). 3. Предположим, что к некоторой строке был применен оператор tr/a-z/A-Z/. Восстановит ли первоначальное состояние строки оператор tr/A-Z/a-z/? а) да; б) скорее всего, нет. Ответы 1. Правильный отве вариант в). Функция shift удаляет из массива элемент "овес", а следующая за ней функция push добавляет в конец массива элемент "ячмень". Последняя функция фрагмента pop является уловкой. Поскольку в ее параметрах не указан массив, она модифицирует переменную которая никакого отношения не имеет к массиву 2. Правильный ответ - вариант в). Если вы выбрали вариант а), то не учли тот факт, что десятичная точка занимает одну позицию в строке размером 18 символов (18=14+1+3). 3. Правильным является ответ б). Например, строка "Rosebud" в результате переколировки с помощью оператора z/A-Z/ будет иметь вид ROSEBUD". Применение оператора tr/A-Z/a-z/ изменит строку на "rosebud", а ведь это не то, что было вначале. Упражнения Перепишите программу которая рассматривалась на 4-м занятии, "Укладка строительных блоков: списки и массивы", так, чтобы в ней вместо массивов использовались скаляры. Для изменения отдельных символов в строке воспользуйтесь функцией substr. Измените программу, приведенную в листинге 9.1, так, чтобы исходные данные она читала из файла. Для этого вместо оператора инициализации массива необходимо поместить операторы, открывающие файл, читающие из него данные в массив и закрывающие файл. Оставшуюся часть программы менять не нужно. При тестировании программы не забудьте создать файл с исходными данными. 10-й час Файлы и каталоги ДЛЯ хранения данных в любой операционной системе используются файлы. Способ хранения данных, выбор системы именования файлов и выполнение поиска нужных файлов зависит от типа конкретной файловой системы, которая является составной частью любой операционной системы. Обычно операционная система позволяет хранить файлы в виде логических групп, которые называются каталогами, или папками. В каталогах могут находиться файлы или другие (вложенные) каталоги. Систему вложенных каталогов часто представляют в виде древовидной структуры. При этом любой файл является составной частью отдельного каталога, а сам каталог входит в другой (родительский) каталог. Кроме поддержки организационной структуры файлов, операционная система также сохраняет некоторую дополнительную информацию о самом файле, такую как время последнего обращения, время, модификации, имя владельца, текущий размер и т.д. Описанная выше модель файловой системы применяется в большинстве современных операционных систем. В компьютерах Macintosh, несмотря на некоторые терминологические разногласия (каталог верхнего уровня называется томом, а вложенные каталоги - папками), также используется данная модель файловой системы. В языке Perl предусмотрены средства для доступа к структуре файловой системы, изменения ее и получения подробной информации о самом файле. Прототипы функций Perl для открытия, чтения и записи файлов взяты из операционной системы UNIX, однако, они прекрасно работают в любой операционной системе. Другими словами, все функции для работы с файлами в Perl обладают свойством переносимости. А это означает, что программа манипуляции с файлами будет работать без изменений в любой операционной системе, для которой существует интерпретатор. Perl (при условии, что эта операционная система поддерживает иерархическую файловую структуру). Основные темы этого занятия. • Получение листинга каталога. • Создание и удаление файлов. • Создание и удаление каталогов. • Получение информации о файле. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 [ 45 ] 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |