Hi, Am just trying out this bracket checker script but when I ran it, it is giving errors below.
Just curious to know what the error is about? Please advise. Thanks Error below: http://pastebin.com/d8GNL0kx ./123.pl testfile01x.ora Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xab) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xab) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xab) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xab) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xab) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xab) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Malformed UTF-8 character (unexpected continuation byte 0xbb) at ./123.plline 8. Sequence (?|...) not recognized before HERE mark in regex m/(?| << HERE (\()(?&matched)([\}\]..»?>»??]|$) | (\{)(?&matched)([\)\]..»?>»??]|$) | (\[)(?&matched)([\)\}..»?>»??]|$) | (.)(?&matched)([\)\}\].»?>»??]|$) | (.)(?&matched)([\)\}\].»?>»??]|$) | («)(?&matched)([\)\}\]..?>»??]|$) | (?)(?&matched)([\)\}\]..»>»??]|$) | (<)(?&matched)([\)\}\]..»?»??]|$) | («)(?&matched)([\)\}\]..»?>??]|$) | (?)(?&matched)([\)\}\]..»?>»?]|$) | (?)(?&matched)([\)\}\]..»?>»?]|$) | at ./123.pl line 34. Code below or can be copied from http://pastebin.com/d8GNL0kx #!/usr/bin/perl use strict; use utf8; binmode STDOUT,":utf8"; use File::Find; my $checkre = qr/(?| (\()(?&matched)([\}\]”›»】〉》」』]|$) | (\{)(?&matched)([\)\]”›»】〉》」』]|$) | (\[)(?&matched)([\)\}”›»】〉》」』]|$) | (“)(?&matched)([\)\}\]›»】〉》」』]|$) | (‹)(?&matched)([\)\}\]”»】〉》」』]|$) | («)(?&matched)([\)\}\]”›】〉》」』]|$) | (【)(?&matched)([\)\}\]”›»〉》」』]|$) | (〈)(?&matched)([\)\}\]”›»】》」』]|$) | (《)(?&matched)([\)\}\]”›»】〉」』]|$) | (「)(?&matched)([\)\}\]”›»】〉》』]|$) | (『)(?&matched)([\)\}\]”›»】〉》」]|$) | (^)(?&matched)([\)\}\]”›»】〉》」』])) (?(DEFINE)(?<matched>(?: \((?&matched)\) | \{(?&matched)\} | \[(?&matched)\] | “(?&matched)” | ‹(?&matched)› | «(?&matched)» | 【(?&matched)】 | 〈(?&matched)〉 | 《(?&matched)》 | 「(?&matched)」 | 『(?&matched)』 | [^\(\{\[“‹«【〈《「『\)\}\]”›»】〉》」』]++)*+)) /sx; sub check_file { if(-f && /\.txt$/) { if(open(my $fh,'<:encoding(UTF-8)',$_)) { undef $/; my $data = <$fh>; if($data =~ $checkre) { if(!length $2) { print "File $File::Find::name has unclosed bracket $1 at position $-[1]\n"; } elsif(!length $1) { print "File $File::Find::name has unopened bracket $2 at position $-[2]\n"; } else { print "File $File::Find::name has mismatched brackets $1 $2 at positions $-[1] and $-[2]\n"; } } } else { print STDERR "Cannot open $File::Find::name: $!\n"; } } } @ARGV = ('.') unless @ARGV; find(\&check_file,@ARGV);