Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Perl code error

by dimmesdale (Friar)
on Aug 14, 2001 at 03:50 UTC ( [id://104634]=perlquestion: print w/replies, xml ) Need Help??

dimmesdale has asked for the wisdom of the Perl Monks concerning the following question:

I worked on some perl code to extract some information I have on file about quotes (see Quote Page Help, posted earlier). I came up with some simple code, and before going into a database or any decision about that, I first want to see if what I have can suit my needs. However I get this error:

Unmatched before ( HERE mark in regex m//-s(\S+)[^\n]*\n\/\-q(( << HERE ?:./ at qoutes.pl line 12
Any reason/possible fixes for this? Thanks.
my @files = qw(quotePAGE1 quotePAGE2); for (@files) { open IN, $_ or die "failed opening file $_, at"; $\ = "\n\n"; my $num = 0; my($chunk,$q_num,%s_nums,%auth,@s,%subj); while($chunk = <IN>) { ++$num; $chunk =~ s|^/-a(\S+)[^/n]*\n|| or die "no author? file $_, chunk $num; at"; $a = $1; while($chunk =~ s|/-s(\S+)[^\n]*\n/-q((?:.|\n)+?(?=/-))||) { $q_num = 0; $auth{$a}->[$q_num] = $2; @s = split /,/,$1; for (@s) { (undef($s_nums{$_}) && $s_nums{$_} = 0) || $s_nums{$_} += 1 } $subj{$_}->[$s_nums{$_}] = $2 for @s; } } }

Replies are listed 'Best First'.
Re: Perl code error
by bikeNomad (Priest) on Aug 14, 2001 at 03:57 UTC
    The || is being parsed wrong; use another delimiter for your s///. Also you have a couple of typos past that. A corrected version could look like:

    my @files = qw(quotePAGE1 quotePAGE2); for (@files) { open IN, $_ or die "failed opening file $_, at"; $\ = "\n\n"; my $num = 0; my($chunk,$q_num,%s_nums,%auth,@s,%subj); while($chunk = <IN>) { ++$num; $chunk =~ s|^/-a(\S+)[^/n]*\n|| or die "no author? file $_, chunk $num; at"; $a = $1; while($chunk =~ s{/-s(\S+)[^\n]*\n/-q((?:.|\n)+?(?=/-))}{}) { $q_num = 0; $auth{$a}->[$q_num] = $2; @s = split /,/,$1; for (@s) { (undef($s_nums{$_}) && $s_nums{$_} == 0) || ($s +_nums{$_} += 1) } $subj{$_}->[$s_nums{$_}] = $2 for @s; } } }

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://104634]
Approved by root
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (2)
As of 2024-04-24 14:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found