Проверить встречающиеся в файле скобки различных видов (круглые, квадратные, фигурные) на наличие второй пары

code: #perl
  1. #!/usr/bin/perl
  2.  
  3. use warnings;
  4.  
  5. my $brackets='()[]{}';
  6. my $charStack='';
  7.  
  8. my $char;
  9. while(read STDIN, $char, 1)
  10. {
  11.     my $type=index($brackets, $char);
  12.     next if $type==-1;
  13.     unless($type % 2)
  14.     {
  15.         $charStack.=$char;
  16.     }
  17.     else
  18.     {
  19.         die "$0: Баланс нарушен: непарная закрывающая скобка\n"
  20.             unless length $charStack
  21.                 and index($brackets, (chop $charStack).$char)>=0
  22.     }
  23. }
  24.  
  25. die "$0: Баланс нарушен: непарная открывающая скобка\n" if length $charStack;
Поделиться:

Похожие статьи: