Schrift
[thread]9931[/thread]

durch eigene error_log läuft script (Seite 2)



<< |< 1 2 >| >> 19 Einträge, 2 Seiten
bloonix
 2007-08-02 12:20
#97233 #97233
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
bieber+2007-08-02 10:15:14--
mein Hirn streubt sich irgendwie immernoch dagegen, naja ich glaube das braucht einfach nur Zeit und Übung, irgendwann werde ich der größte Regex-Experte dieser Welt sein :D muhahaha

Wo liegt denn das Problem? Was sind deine Bedenken?
Verstehst du die Regex? Das sind alles Fragen, die beantwortet
werden können. Pass auf... deine Zweifel werden im nu beiseite
geschoben! ;)
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
bieber
 2007-08-02 12:36
#97235 #97235
User since
2007-06-18
148 Artikel
BenutzerIn
[default_avatar]
also ich verstehe es nicht ganz^^

zuerst beliebig viele Whitespaces
danach kann entweder eines der Zeichen [#;] kommen oder das Ende der Zeile

was ich nicht verstehe ist die Konstruktion ?:

allgemein ist mein Problem, dass ich nicht daran denke es mit ner regex zu lösen, hier habe ich z.B. überlegt:"Okay ich muss das erste Zeichen überprüfen, also mach ich einfach ein substr auf das erste Zeichen"
Es gibt immer Leute die meinen, sie seien schlauer als ich. Das Schlimmste ist, sie sind es auch.
bloonix
 2007-08-02 12:56
#97238 #97238
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
bieber+2007-08-02 10:36:41--
was ich nicht verstehe ist die Konstruktion ?:

Du weißt doch, was Runde Klammern in einer Regex machen?
Runde Klammern veranlassen eine Regex dazu, das, was sie
matchen, in einer Variable abzuspeichern... du kennst doch
bestimmt die Variablen $1, $2, $3 etc.

?: in einer runden Klammer veranlasst eine Regex, den Match
nicht in einer dieser Variablen abzuspeichern. Beispiele:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
my $string = 'foo bar baz';

$string =~ /(\w+) (\w+) (\w+)/;

print "1: $1, 2: $2, 3: $3\n";

$string =~ /(\w+) (?:\w+) (\w+)/;

print "1: $1, 2: $2\n";

print "3: is empty\n" unless $3;


1: foo, 2: bar, 3: baz
1: foo, 2: baz
3: is empty


Wie du sehen kannst, ist bei dem zweiten print baz in $2 und nicht in $3,
da ich die Regex angewiesen habe, den Match in der zweiten Klammer
nicht abzuspeichern.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
foreach (@datei) {
next if /
^ # vom Anfang der Zeile
\s* # 0 oder alle Whitespaces
( # Anfang des Captures
?: # es soll nicht gecaptured werden
[#;] # # oder ;
| # ODER
$ # das Ende der Zeile
) # Ende des Captures
/x; # beachte keine Whitespaces
chomp; my @work = split /\s+/;
}
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
bieber
 2007-08-02 13:30
#97253 #97253
User since
2007-06-18
148 Artikel
BenutzerIn
[default_avatar]
opi+2007-08-02 10:56:36--

?: in einer runden Klammer veranlasst eine Regex, den Match
nicht in einer dieser Variablen abzuspeichern. Beispiele:


aso, das wusste ich nicht, in meiner Kurzreferenz stands auch nicht drinne
danke für die ausführliche Erklärung, hat geholfen ;)
Es gibt immer Leute die meinen, sie seien schlauer als ich. Das Schlimmste ist, sie sind es auch.
renee
 2007-08-02 13:32
#97255 #97255
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
opi+2007-08-02 09:46:12--
bieber+2007-08-02 09:39:00--
funktioniert ;)

Wie hast du es denn nun gemacht? Denn wenn du einfach
nur /^$/ eingefügt hast, wirst du trotzdem bei Zeilen, die
nur Leerzeichen enthalten die Warnungen erhalten.


Nö, denn dann ist es nicht mehr "uninitialized"...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
bloonix
 2007-08-02 13:40
#97264 #97264
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
renee+2007-08-02 11:32:51--
Nö, denn dann ist es nicht mehr "uninitialized"...

Wieso nö?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use strict;
use warnings;

my @datei = (' ');

foreach(@datei){
# leerzeilen interessieren nicht...
next if /^$/;
my $check="false"; #rücksetzen der checkVariabel
chomp; my @work = split /\s+/; #jede Zeile der Datei ins array "work" laden, je Trennzeichen
$work[0]=~ s/^\s+//g; #leerzeichen zu beginn einer Zeile löschen
next if substr ($work[0],0,1) eq '#'; #nächste Zeile der datei wenn das erste Zeichen "#" ist
next if substr ($work[0],0,1) eq ';';
next if substr ($work[0],0,1) eq '';
}


Use of uninitialized value in substitution (s///) at ./test.pl line 12.
Use of uninitialized value in substr at ./test.pl line 13.
Use of uninitialized value in substr at ./test.pl line 14.
Use of uninitialized value in substr at ./test.pl line 15.


@work ist leer, also reicht /^$/ nicht!
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
renee
 2007-08-02 13:49
#97270 #97270
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du über @datei iterierst und ein Element von @work (das gar nicht existiert) nimmst, dann ist es klar, dass Du Warnungen bekommst...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
renee
 2007-08-02 13:50
#97271 #97271
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@user opi, Wenn Du nicht "opi" bist, dann klicke bitte auf "Abmelden" *fg* ;)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
bloonix
 2007-08-02 14:24
#97283 #97283
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
ich habe das codestück 1:1 übernommen, das du gepostet hast *g*
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2007-08-02 10:43.