🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #52250

[RegEx] Parametr opcjonalny w wyrażeniu regularnym

#52250
From: Scottie
Date: Thu, 09 Jun 2011 10:09
70 lines
4157 bytes
Cześć!
Mam problem z skonstruowaniem poprawnego wyrażenia regularnego. Mam
poniższy kod, a Perl czepia się (Use of uninitialized value in
concatenation (.) or string at /tmp/test.pl line 10) linii nr 10,
która jest równa print "|$backup_compressed|$type_of_backup|\n";
Mój kod:
-----------8<-----------
#!/usr/bin/perl
use warnings;
use strict;

while (<DATA>) {
    my ($backup_compressed, $type_of_backup ) = $_ =~ /
channel.*starting\s(?!piece)(.*)\s(.*)\sdatafile.*/;
    if ( $backup_compressed eq '') {
        $backup_compressed = "not_compressed";
    }
    print "|$backup_compressed|$type_of_backup|\n";
}


__DATA__
channel ch1: starting compressed full datafile backup set
channel ch1: starting piece 1 at 2011-05-30 02:00:08
channel ch2: starting compressed full datafile backup set
channel ch2: starting piece 1 at 2011-05-30 02:00:08
channel ch3: starting compressed full datafile backup set
channel ch3: starting piece 1 at 2011-05-30 02:00:08
channel ch1: starting compressed full datafile backup set
channel ch1: starting piece 1 at 2011-05-30 02:37:19
channel ch1: starting compressed full datafile backup set
channel ch1: starting piece 1 at 2011-05-30 02:37:20
channel ch1: starting compressed archived log backup set
channel ch1: starting piece 1 at 2011-05-30 02:50:57
channel ch2: starting compressed archived log backup set
channel ch2: starting piece 1 at 2011-05-30 02:50:57
channel ch3: starting compressed archived log backup set
channel ch3: starting piece 1 at 2011-05-30 02:50:57
channel ch1: starting full datafile backup set
channel ch1: starting piece 1 at 2011-05-31 02:00:06
channel ch2: starting full datafile backup set
channel ch2: starting piece 1 at 2011-05-31 02:00:06
channel ch3: starting full datafile backup set
channel ch3: starting piece 1 at 2011-05-31 02:00:07
channel ch1: starting full datafile backup set
channel ch1: starting piece 1 at 2011-05-31 02:34:57
channel ch1: starting full datafile backup set
channel ch1: starting piece 1 at 2011-05-31 02:34:58
channel ch1: starting archived log backup set
channel ch1: starting piece 1 at 2011-05-31 02:47:55
channel ch2: starting archived log backup set
channel ch2: starting piece 1 at 2011-05-31 02:47:55
channel ch3: starting archived log backup set
channel ch3: starting piece 1 at 2011-05-31 02:47:55
-----------8<-----------

Wynik, który chciałbym uzyskać to:
Jeżeli linia jest taka => channel ch1: starting compressed full
datafile backup set
to zmienne $backup_compressed = "Yes" i $type_of_backup = "Full"
Natomiast jeżeli linia jest taka => channel ch1: starting full
datafile backup set
to zmienne $backup_compressed = "No" i $type_of_backup = "Full"

Będę zobowiązany za jakąś pomoc. Zwłaszcza w skonstruowaniu poprawnego
RegEx'pa lub innym obejściu (w Perlu?) tego problemu.

Pozdrawiam,
--
Scottie
Technical Details
Message-ID: <64fb46cb-5161-4fe6-b574-aa65b14dad3e@c26g2000vbq.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!uw.edu.pl!newsgate.cistron.nl!newsgate.news.xs4all.nl!news2.euro.net!news.glorb.com!postnews.google.com!c26g2000vbq.googlegroups.com!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!uw.edu.pl!newsgate.cistron.nl!newsgate.news.xs4all.nl!news2.euro.net!news.glorb.com!postnews.google.com!c26g2000vbq.googlegroups.com!not-for-mail
From: Scottie <scottie383@gmail.com>
Newsgroups: pl.comp.lang.perl
Subject: [RegEx] Parametr opcjonalny w wyrażeniu regularnym
Date: Thu, 9 Jun 2011 03:09:17 -0700 (PDT)
Organization: http://groups.google.com
Lines: 71
Message-ID: <64fb46cb-5161-4fe6-b574-aa65b14dad3e@c26g2000vbq.googlegroups.com>
NNTP-Posting-Host: 193.109.212.35
Mime-Version: 1.0
X-Trace: posting.google.com 1307614157 6547 127.0.0.1 (9 Jun 2011 10:09:17 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Thu, 9 Jun 2011 10:09:17 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: c26g2000vbq.googlegroups.com; posting-host=193.109.212.35; posting-account=ELxU3goAAAC0N9FXVO0mEF4trg5o1BZ0
User-Agent: G2/1.0
X-HTTP-Via: 1.1 SRV3ISACEN
X-Google-Web-Client: true
X-Google-Header-Order: VCRUHALSNK
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16,gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit