Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
x = 1
y = 2
z = 3
Iteration number: 3
А теперь списковый контекст оператора m/.../:
$string = "words 999 text";
# извлекает в массив @arr все "слова",
# а точнее, диапазон строчных или заглавных букв от a до z
@arr = ($string =~ m/([A-Za-z]+)/g);
print join " ",@arr;
Вот что получится: words text
А теперь насчет использования внутренних ссылок.
$string = "<a href=index.htm>go to main page</a>";
$string =~ m%<(a|body)s+(.*)>(.*)</1>%;
$link_name = $3;
print $link_name;
Вывод такой: go to main page
Здесь 1 – это внутреняя ссылка на первую группу, т.е., например, в первой группе шаблон совпал с тегом A, тогда 1 тоже будет равно тому же. Точно также, как и с другими ссылками 1,2,3...
С помощью функции split() и шаблонов текст можно разбивать на куски, например, терминатор строки (или разделитель записей) должен быть фиксированной величиной, поэтому чтобы прочитать файл по шаблону, нужно сделать следующее:
open(FH,"file.txt") or die $!;
undef $/;
@chunks = split(/ | /,<FH>);
Данный кусок заносит в массив @chunks строки файла независимо от того, создан он в Unix-системе или в Windows.
Также с помощью split() можно разбить строку на символы, т.е. каждый элемент массива будет равен одному символу, это делается так:
$string = "some letters";
@l = split(//,$string);
Выше я в основном рассматривал работу с операторами m/.../ и s/.../.../, а теперь посмотрим на оператор трансляциии текста, т.е. tr/.../.../. Начнем с его модификаторов:
n d – удаляет непарные символы;
n с – первый аргумент это полный список из 256 символов, кроме тех, которые указаны в аргументе;
n s – удаляет повторяющиеся символы, образованные при замене.
Давайте посмотрим, как используется модификатор c:
$string = "This is some text";
$string =~ tr[A-Za-z][*]c;
print $string;
Вот что получится: This*is*some*text
В этом случае заменяются все символы, кроме тех, которые указаны в первом аргументе (т.е. всех латинских), в данном случае – это пробел.
Удаляем удвоенные, утроенные и т. д. символы:
$string = "Thiiiisss is sooooome teeeeeeext";