ok, here's another weird question. i have, in a string, the value (or
nickname) "][v][orpheus". This gets set to $pnick as such:
$pnick = lc(substr($sockstr[0],1));
which then makes $pnick = "][v][orpheus". lower down the procedure, i have
an event,
$chandat{$pchan}->{nicks} =~ s/\b$pnick//;
$chandat{$pchan}->{nicks} =~ s/ / /;
which removes the value of $pnick from the hash $chandat{$pchan}->{nicks}.
now, if the value $pnick has any [ ] { } \ / or |, perl returns an error,
and the program shuts down. i tried to fix this problem with this:
$pnick =~ s/\|/\\\|/g;
$pnick =~ s/\[/\\\[/g;
$pnick =~ s/\]/\\\]/g;
$pnick =~ s/\\/\\\\/g;
$pnick =~ s/\}/\\\}/g;
$pnick =~ s/\{/\\\{/g;
but running all that, returns this error:
/\b\\]\\[v\\]\\[orpheus/: unmatched [] in regexp at newservice.pl line 292,
<SOCK> line 118.
i can't figure out a way (or regex method) i would use to replace [ with
\[, ] with \], etc.. any clues?
dan
--------------------------------
this is the entire routine
note: at this point:
@sockstr = :nickname PART #channel
__ start __
$pnick = lc(substr($sockstr[0],1));
$pchan = lc($sockstr[2]);
debugmsg("sockstr for part - @sockstr");
$pnick =~ s/\|/\\\|/g;
$pnick =~ s/\[/\\\[/g;
$pnick =~ s/\]/\\\]/g;
$pnick =~ s/\\/\\\\/g;
$pnick =~ s/\}/\\\}/g;
$pnick =~ s/\{/\\\{/g;
$chandat{$pchan}->{nicks} =~ s/\b$pnick//;
$chandat{$pchan}->{nicks} =~ s/ / /;
__ end __
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]