Thanks for all the advice :-). I'll follow up on it shortly, this is just my dummy script for testing :-) Have a grate day ..
On 11/17/06, John W. Krahn <[EMAIL PROTECTED]> wrote:
Mumia W. wrote: > > This works: > > use Mysql; > use strict; > use warnings; > > my $regex = '^(\d+)-(\w+)-(\d+) (\d+):(\d+):(\d+).*?client' > . '\s(\d+)(.\d+)(.\d+)(.\d+)#(\d+): view external: (.*)$'; You need to escape the . character to match a literal period. You should probably also use the qr// operator: my $regex = qr/ ^ (\d+)-(\w+)-(\d+) \s+ (\d+):(\d+):(\d+) .*?client\s+ (\d+\.\d+\.\d+\.\d+)\#(\d+) :\s+view external:\s+ (.*) $ /x; > my $dbh = Mysql->connect('localhost','test','') > or die("Connect failed."); > my $search = $dbh->query('select msg from logfiles') > or die("Query failed: " . $dbh->errstr); > > while (my @row = $search->fetchrow) { > no strict 'vars'; Why are you turning off strict? > $row[0] =~ tr/'//d; > if ($row[0] =~ /$regex/os) { > $day = $1; > $month = $2; > $year = $3; > $hour = $4; > $minute = $5; > $second = $6; > $clientip = $7; > $clientip .= $8; > $clientip .= $9; > $clientip .= $10; > $port = $11; > $query = $12; > > print("day is $day\n"); > print("month is $month\n"); > print("year is $year\n"); > print("hour is $hour\n"); > print("minute is $minute\n"); > print("second is $second\n"); > print("clientip is $clientip\n"); > print("port is $port\n"); > print("query is $query\n"); > print("\n"); Why all the copying? if ( $row[ 0 ] =~ /$regex/ ) { print <<TEXT; day is $1 month is $2 year is $3 hour is $4 minute is $5 second is $6 clientip is $7 port is $8 query is $9 TEXT > } else { > print "Malformed Log Entry: $row[0]\n"; > } > } > > undef $search; > undef $dbh; John -- Perl isn't a toolbox, but a small machine shop where you can special-order certain sorts of tools at low cost and in short order. -- Larry Wall -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>
-- Gregory Machin [EMAIL PROTECTED] www.linuxpro.co.za -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>