Изучаване на Perl
Четенето от стандартен вход (чрез дескриптора на stdin файл на Perl) не е трудно. Вече направихме това в операцията. Извършвайки тази операция в скаларен контекст, получаваме следния ред за въвеждане * (и ако няма повече редове, тогава стойността е undef):
$ a =; # прочетете следващия ред
Изпълнението в контекст на списък дава всички останали редове като списък, всеки елемент от който е един ред, включително краен нов ред. Припомням си:
Като правило, когато се разработва програма, човек трябва да реши проблема с четенето на всички редове един по един и след това да извършва някои операции върху всеки от тях. Ето един често използван метод за решаване на този проблем:
# обработете $ ред тук)
* Преди символа за нов ред или каквото и да сте присвоили на $/променлива.
Четенето на скаларна стойност от в $ _ и използването на тази стойност като променлива на цикъл (както в предишния пример) е доста често, така че Perl има специален стенограф за това. Ако в израза е посочено само четенето от стандартния оператор за въвеждане за проверка на цикъла (нещо като), тогава Perl автоматично копира низа, който се чете, в променливата $ _.
chomp; # като "chomp ($ _)" # други $ _ операции се извършват тук)
Тъй като променливата $ _ се използва по подразбиране в много операции, по този начин можете значително да намалите количеството текст, който въвеждате.
Вход от диамантена операция
#!/usr/bin/peri while (<>) (print $ _;
и го наричате така:
kitty filel file2 file3
В хода на нейното изпълнение операцията "диамант" не разглежда директно аргументите на командния ред, а работи с масива @argv. Това е специален масив, инициализиран от интерпретатора на Perl според аргументите на командния ред. Всеки аргумент се съхранява в отделен елемент от този масив. Можете да интерпретирате този масив, както искате *. Можете дори да дефинирате този масив във вашата програма и да накарате операцията "диамант" да работи с този нов списък, а не с аргументи от командния ред, например:
В глава 10 ще видим как можете да отваряте и затваряте конкретни файлове в точно определено време. Ние обаче вече използвахме този метод в някои от нашите набързо калдъръмени програми.
Функциите за печат и printf на Perl се използват за изпращане на всякакви данни към стандартен изход. Да видим как работят.
Функция за печат - нормален изход
Вече използвахме функцията за печат, изпращайки текст към стандартен изход. Нека се спрем на този въпрос по-подробно.
Функцията за печат взема списък с редове и ги изпраща един по един към стандартния изход, без да добавя междинни или последващи знаци. Може да не е напълно очевидно, че print е просто функция, която взема списък с аргументи и връща определена стойност като всяка друга функция. С други думи,