Thit has led to surprising results in Pugs's Net::IRC:

    if 'localhost:80' ~~ /^(.+)\:(\d+)$/ {
        my $socket = connect($0, $1);
    }

If $1 is a match object here, and connect() assumes Int on its second
argument, then it will connect to port 1, as the match object numifies
to 1 (indicating a successful match).

I "fixed" this for 6.2.3 by flattening $0, $1, $2 into plain scalars
(for nonquantified matches), and use $/[0] etc to store match objects,
but I'm not sure this treatment is right.

Is it really intended that we get into habit of writing this?

    if 'localhost:80' ~~ /^(.+)\:(\d+)$/ {
        my $socket = connect(~$0, +$1);
    }

It looks... weird. :)

Thanks,
/Autrijus/

Attachment: pgpwUSQZmM4vw.pgp
Description: PGP signature

Reply via email to