AnonSec Shell
Server IP : 162.214.74.102  /  Your IP : 216.73.217.103
Web Server : Apache
System : Linux dedi-4363141.lrsys.com.br 3.10.0-1160.119.1.el7.tuxcare.els25.x86_64 #1 SMP Wed Oct 1 17:37:27 UTC 2025 x86_64
User : lrsys ( 1015)
PHP Version : 5.6.40
Disable Function : exec,passthru,shell_exec,system
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/doc/perl-Regexp-Assemble-0.35/eg/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /usr/share/doc/perl-Regexp-Assemble-0.35/eg/ircwatcher
/usr/bin/perl -w
#
# ircwatcher - watch an IRC stream and do things when
#              interesting things occur
#
# This script demonstrates the use of dispatch table. One
# regular expression matching everthing, and then handing
# off the captured submatches to a callback.
#
# Try changing the read of STDIN to DATA for a quick demo.
#
# Acknowledgements to David "Sniper" Rigaudière for the
# idea.
#
# Copyright (C) David Landgren 2005

use strict;
use Regexp::Assemble;

my %dispatch = (
    '^\*\*\* (\S+) joined channel (\S+)$'           => \&joined,
    '^\*\*\* (\S+) left channel (\S+) reason (.*)$' => \&left,
    '^q$' => sub { exit },
);

my $re = Regexp::Assemble->new
    ->track(1)
    ->add(keys %dispatch);

sub joined {
    my ($who, $channel) = @_;
    print "$who joined $channel\n";
}

sub left {
    my ($who, $channel, $reason) = @_;
    print "$who left $channel saying $reason\n";
}

while( <STDIN> ) {
    chomp;
    if ($re->match($_)) {
        $dispatch{$re->matched}->($re->capture);
    }
    else {
        print "ignored <$_>\n";
    }
}

__DATA__
*** david joined channel foo
hello
*** david left channel bar reason that's all folks
q

Anon7 - 2022
AnonSec Team