В файле встречаются скобки нескольких видов, например, круглые, квадратные и фигурные. Напишем программу balance.pl, которая проверит, сбалансированы эти скобки или нет.
Если текст сбалансирован, программа, прочитав его до конца, завершается, не выдавая никаких сообщений. Если же баланс нарушен, программа сообщает о непарной скобке — открывающей или закрывающей.
Программа будет читать символы со стандартного ввода, то есть после своего
запуска будет ожидать ввода символов с клавиатуры. Чтобы обозначить конец
ввода, в Linux
следует ввести символ
␄
(End Of
Transmission — конец передачи). Для этого нужно нажать
Ctrl+D:
%
./balance.pl
(()abc(])[)␄
./balance.pl: Баланс нарушен: непарная закрывающая скобка
Другой вариант использования программ, читающих со стандартного ввода — переадресация ввода из файла. Вместо того, чтобы вводить символы вручную, поместим их в файл, и поместим после команды ./balance.pl знак <, а затем имя файла:
%
./balance.pl <BalancedText.txt
%
./balance.pl <NonBalancedCloseBracketText.txt
./balance.pl: Баланс нарушен: непарная закрывающая скобка
Наконец, можно перенаправить на стандартный ввод команды ./balance.pl стандартный вывод какой-то другой команды. Это может быть команда cat, которая просто выводит содержимое файла на стандартный вывод. Для присоединения стандартного вывода одной команды к стандартному вводу другой между командами вставляется знак конвейера |:
%
cat NonBalancedOpenBracketText.txt |./balance.pl
./balance.pl: Баланс нарушен: непарная открывающая скобка