Hi newbie01 perl,

 The code you posted worked fine, if only you save your perl
file (e.g exec2.pl - it doesn't matter the name of ur perl file),
using UTF-8 Encoding.
###### HOW TO SAVE USING UTF-8 ENCODING ##########
 Copy the codes into notepad and give it any name you like
 but you must end with ".pl" or ".plx", on the File name
 then on Save as type: change to "All Files",
 then Encoding: use "UTF-8" (or any other,except ANSI), instead of using
default "ANSI".

 My experience:Some times one gets error like ds when codes are copied
directly from pdf e-books.
-- happy coding!

On Thu, Jul 28, 2011 at 11:25 PM, newbie01 perl <newbie01.p...@gmail.com>wrote:

> 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);
>

Reply via email to